(我是新来的,如果我忘记写任何重要信息,很抱歉(。我正在尝试从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对象,并在重新绘制组件时将其传递给组件。
自定义绘制是通过覆盖JPanel
的paintComponent(...)
方法来完成的。然后将面板添加到JFrame中。
@Override
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
// add custom painting logic here
}
阅读Swing教程中关于自定义绘画的部分,了解更多信息和工作示例,以便入门。教程将向您展示如何更好地构建类。