gpt4 book ai didi

java - 由于 Graphics g 初始化而导致 AWT-EventQueue-0 NullPointerException

转载 作者:行者123 更新时间:2023-11-30 05:54:43 25 4
gpt4 key购买 nike

(我是新来的,如果我忘记写任何重要信息,抱歉)。我正在尝试通过 AccuWeather API 可视化天气,但我认为我目前陷入了 Graphics g 的初始化。

所以这是我的信息:

public class Draw extends JFrame {

Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
Graphics g;

我尝试了 Graphics g = new Graphics(); 但这不起作用,因为 Graphics g 是静态的。

这是我的绘画方法的一部分:

public void paint (Double[] weather, String sender, Graphics g) {

super.paint(g);
Toolkit tk = Toolkit.getDefaultToolkit();

if (sender.equals("index5_Button")) {

Graphics2D stargazing = (Graphics2D) g;
((Graphics2D) g).setBackground(Color.BLACK);

这就是对paint的调用:

paint(weatherValue, sender, g);

很明显它没有正确初始化g,但我不知道如何修复它。

非常感谢您提前提供的帮助!

最佳答案

I tried Graphics g = new Graphics();

您不应该尝试初始化组件的Graphics对象。当组件重绘时,Swing 将创建 Graphics 对象并将其传递给组件。

自定义绘制是通过重写 JPanelpaintComponent(...) 方法来完成的。然后将面板添加到 JFrame`。

@Override
protected void paintComponent(Graphics g)
{
super.paintComponent(g);

// add custom painting logic here
}

阅读 Swing 教程中关于 Custom Painting 的部分了解更多信息和工作示例以帮助您入门。这些教程将向您展示如何更好地构建您的类(class)。

关于java - 由于 Graphics g 初始化而导致 AWT-EventQueue-0 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53377698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com