我有一个与Java中的paintComponent方法有关的问题。基本上,我想做的就是使用按钮在屏幕上移动一个椭圆形。
//public class piedra
public void paintComponent(Graphics g) {
//super.paintComponent(g);
System.out.println(contador);
if(contador >= 1) {
g.fillOval(x, y, largo, ancho);
}
if (contador == 0) {
g.setColor(Color.GRAY);
g.fillOval(x, y, largo, ancho);
contador++;
}
}
每个变量都是一个属性,因此我可以使用带有按钮类的框架来操纵它们。这就是我想做的:
public void actionPerformed(ActionEvent e) {
piedra.y = piedra.y - 1;
piedra.paintComponent(piedra.g);
}
我正在尝试使用paintComponent方法在屏幕上移动椭圆,但是当我按下按钮时,程序将引发NullPointer异常。我已经检查了Y变量,按下按钮后它会更改。就是这样,我从那时起就迷失了。我几乎不记得有一个功能可以更新屏幕,但是我认为它不会对异常产生任何影响,对吗?任何可能的解决方案?
谢谢!
我相信您不应该直接致电paintComponent(piedra.g)
,而应该致电repaint()