我有自定义JLayeredPane
和两个自定义子JPanel
。我在while
的{{1}}循环中重新绘制所有内容。我使用Thread
来停止重新绘制RepaintManager.currentManager(backPanel).markCompletelyClean(backPanel);
backPanel
。至于不浪费系统资源。但是,这不起作用。正如我们在JPanel
方法中看到的,如果您运行并编译下面的代码,您将看到语句" Reccursion"在paintComponent
方法的System.out.println("Reccursion")
方法调用中,在输出中以递归方式重复。
为什么paintComponent
backPanel
仍然被重新绘制,为什么仍在调用方法JPanel
,当我使用System.out.println("Reccursion")
时。
RepaintManager.currentManager(backPanel).markCompletelyClean(backPanel);
答案 0 :(得分:0)
方法“paintComponent”经常被调用而没有你的“许可”(它也给了我很多时间......) 您无法对此做任何事情,只是不要在此方法中每次都生成新数据,或者外观可能会经常更改。 祝你好运