每当我运行这个时,我都会收到错误:
“anime.re.main(re.java:12)中的anime.re.drawShape(re.java:17)中的线程”main“java.lang.NullPointerException中的异常”
我没有传递空引用,问题是什么?
import javax.swing.JFrame;
import java.awt.Graphics;
public class re {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(400, 400);
Graphics g = frame.getGraphics();
drawShape(g);
frame.setVisible(true);
}
public static void drawShape(Graphics g) {
g.drawOval(0, 0, 100, 100);
}
}
答案 0 :(得分:1)
使用Graphics2D的paint方法而不是自己创建方法。此外,您的空指针异常来自于在设置jpanel或使jframe可见之前尝试绘制。
public class example extends JPanel{
public static void main(String[] args){
JFrame frame = new JFrame("Example");
example main = new example();
int miliSecs = 25;
frame.add(main);
frame.setSize(640, 480);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.repaint();//here is the call to the paint method
}
public void paint ( Graphics g ){
//paints the screen
g.setColor(Color.BLACK);
g.fillRect(0,0,640,480);
}
}
这样,您还可以使用update()
方法调用每个帧清除屏幕以及paint()
方法。