防止Java在更新时重新绘制JPanel的内容

时间:2010-10-31 22:22:20

标签: java swing jpanel flicker jcomponent

我有一个包含很多子组件的JPanel。在更新\添加新组件到父JPanel时,我想阻止它重新绘制,这怎么能实现?

3 个答案:

答案 0 :(得分:7)

试试RepaintManager.currentManager(component).markCompletelyClean(component)。它会阻止组件重新绘制。每次添加新组件后,您可能需要执行此操作。

答案 1 :(得分:2)

setVisible(false)  

更新

setVisible(true)

答案 2 :(得分:1)

您可以尝试使用setIgnoreRepaint(boolean value),但这是一个典型的摆动功能,可以或不可行(主要是因为它取决于AWT所以你永远不知道)。

否则,您可以使用一个标志来覆盖paint方法,该标志只是使方法返回而不调用super.paint()。 (实际上覆盖paintComponent应该是正确的选择)