Java 重新油漆();不调用绘制方法
我知道这个问题以前已经被问过好几次了,但似乎没有一个答案适合我。 我正在尝试创建一个双陆棋游戏,当我开始研究这个游戏时,我遇到了一个早期的问题:重新绘制();未调用paintComponent方法。我将它与我的其他一些正常工作的代码进行了比较,没有发现任何显著的差异Java 重新油漆();不调用绘制方法,java,paint,repaint,Java,Paint,Repaint,我知道这个问题以前已经被问过好几次了,但似乎没有一个答案适合我。 我正在尝试创建一个双陆棋游戏,当我开始研究这个游戏时,我遇到了一个早期的问题:重新绘制();未调用paintComponent方法。我将它与我的其他一些正常工作的代码进行了比较,没有发现任何显著的差异 public class World extends JPanel implements ActionListener { Player1 p1; Player2 p2;
public class World extends JPanel implements ActionListener
{
Player1 p1;
Player2 p2;
Board b;
Timer tm;
public World()
{
setFocusable(true);
p1 = new Player1();
p2 = new Player2();
b = new Board();
tm = new Timer(5, this);
tm.start();
}
public void paintComponent(Graphics g)
{
System.out.println("Called World Paint");
super.paintComponent(g);
p1.paintComponent(g);
p2.paintComponent(g);
b.paintComponent(g);
}
public void actionPerformed(ActionEvent e)
{
System.out.println("Called actionPerformed");
p1.move();
p2.move();
repaint();
}
}
与所有适当的进口。
我知道正在访问actionPerformed方法。repaint()的实现在哪里?可能是您的面板从未在显示的窗口中添加/布局。。。或者其他很多原因。。。请提供更接近可执行示例的内容…摆脱
paint
方法,直接重写paintComponent
。组件不会被绘制的一个原因是,如果它实际上不在屏幕上,可见,大小和可绘制区域内。我曾经尝试过这样做,但没有任何帮助。