[英]ActionListener doesn't seem to be working?
我想制作2D游戏。 我开始制作绘图课程,但我遇到了一个问题: ActionListener
不起作用。 它不会绘制或输出我的消息说它正在工作。 这是代码:
public class Drawing extends JPanel implements ActionListener {
private int count = 0;
public void actionPerformed(ActionEvent e) {
count++;
repaint();
}
@Override
protected void paintComponent(Graphics g) {
System.out.println("Hi");
g.setColor(Color.black);
g.clearRect(0, 0, Boot.WIDTH, Boot.HEIGHT);
g.fillRect(0, 0, Boot.WIDTH, Boot.HEIGHT);
g.setColor(Color.white);
g.drawString("Path count: " + count, 50, 50);
}
}
我认为这会起作用,因为我在其他项目中使用这种绘图方式。 会导致什么?
你不应该保持对Graphics对象的引用并直接调用paint()
。 您应该调用repaint()
,并等待Swing调用paintComponent()
方法,您应该覆盖该方法以在Swing作为方法参数传递的Graphics对象上执行自定义绘制。
有关详细信息,请参阅http://java.sun.com/products/jfc/tsc/articles/painting/index.html 。
public class Drawing extends JPanel implements ActionListener {
private int count = 0;
public void actionPerformed(ActionEvent e) {
count++;
repaint();
}
@Override
protected void paintComponent(Graphics g) {
System.out.println("Hi");
g.setColor(Color.black);
g.clearRect(0, 0, Boot.WIDTH, Boot.HEIGHT);
g.fillRect(0, 0, Boot.WIDTH, Boot.HEIGHT);
g.setColor(Color.white);
g.drawString("Path count: " + count, 50, 50);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.