由于图形初始化,AWT-EventQueue-0出现NullPointerException



(我是新来的,如果我忘记写任何重要信息,很抱歉(。我正在尝试从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(weatherValue, sender, g);

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

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

我尝试过Graphics g=new Graphics((;

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

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

@Override
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
// add custom painting logic here
}

阅读Swing教程中关于自定义绘画的部分,了解更多信息和工作示例,以便入门。教程将向您展示如何更好地构建类。

相关内容

最新更新