我觉得这个问题的解决方案很简单,我只是忽略了一些愚蠢的东西,但我似乎无法使我的一个JPanels的repaint()方法起作用。有问题的JPanel是另一个类的成员对象,它处理绘制到JPanel的所有逻辑,然而,每当我在我的线程中调用repaint()时,我看不到任何绘制,也没有看到我的系统。 out.println()调用,我放在那里进行调试。为方便起见,我把文件放在Github上。以下是我认为可能与它有关的三个文件。如果需要,你可以随时查看其他人。
之前我已经创建了很多JPanel并且很少遇到这个问题,所以我不确定是什么导致了它。
答案 0 :(得分:3)
您在paintComponents
paintComponent
覆盖Grid
而不是JPanel
。这并不遵循Swing的油漆链机制。
@Override
public void paintComponents(Graphics g) {
super.paintComponents(g);
注意:为了处理Swing中的UI更新,请始终使用Swing Timer而不是Thread
。