我有一个包含很多子组件的JPanel。在更新\添加新组件到父JPanel时,我想阻止它重新绘制,这怎么能实现?
答案 0 :(得分:7)
试试RepaintManager.currentManager(component).markCompletelyClean(component)。它会阻止组件重新绘制。每次添加新组件后,您可能需要执行此操作。
答案 1 :(得分:2)
setVisible(false)
更新
setVisible(true)
答案 2 :(得分:1)
您可以尝试使用setIgnoreRepaint(boolean value)
,但这是一个典型的摆动功能,可以或不可行(主要是因为它取决于AWT所以你永远不知道)。
否则,您可以使用一个标志来覆盖paint
方法,该标志只是使方法返回而不调用super.paint()
。 (实际上覆盖paintComponent
应该是正确的选择)