gpt4 book ai didi

java - java.awt.graphics 中图形的自定义方法

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

现在,我刚开始使用 java awt 图形。我已经掌握了基础知识,例如如何将内容实际显示在屏幕上,但我的主要问题是我正在尝试创建在类文件之外使用的自定义方法。

对于我的屏幕类别:

    import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Screen extends JPanel{
Graphics g = null;
public void createBox(int x, int y, int width, int height){
g.fillRect(x, y, width, height);
}
}

对于我的 Draw 类,也使用屏幕类:

    import javax.swing.*;
public class Draw{
public static void main(String[] args) {

JFrame f = new JFrame("Shapes");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Screen s = new Screen();
s.createBox(10,10,10,10);
f.add(s);
f.setSize(512, 512);
f.setVisible(true);
}

}

即使我有 Graphics g;如果没有声明它,我仍然遇到相同的错误:

Exception in thread "main" java.lang.NullPointerException
at Screen.createBox(Screen:java:7)
at Draw.main(Draw:java:8)

createBox() 应该在 Screen 类之外使用,因此我仍然可以使用 fillRect() 但使用不同的名称(我希望这是有意义的)。

谁能指出我做错了什么?谢谢。

最佳答案

Can anyone point out what I'm doing wrong?

不要尝试保留对Graphics对象的引用!而是重写 paintComponent(Graphics) 方法并使用该(有效,非 null)图形实例。要触发绘制,请调用 repaint()

所有这些内容都包含在 tutorial on custom painting 中。经历它!

关于java - java.awt.graphics 中图形的自定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37625986/

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