可以请任何人解释JPanel.repaint()
方法和JFrame.repaint()
方法之间的区别,我想两者都调用paintComponent()
JPanel中的方法.
请澄清一下,谢谢
Hov*_*els 18
调用repaint()
任何组件都会向重绘管理器添加一个请求以绘制该组件.如果条件正确,则管理器将安排paint(...)
调用Component的方法.由于组件的paint方法然后调用paintComponent(...)
,paintBorder(...)
而paintChildren(...)
这将有组分涂料本身,它的边框和级联画递归到其所有的孩子,他们的孩子,他们的孩子的孩子,等等.调用此有关的JFrame将导致此级联各地发生整个顶级窗口,而在子组件上调用它将导致仅重新绘制该组件及其子组件.
请注意,调用repaint()
不保证重绘管理器将绘制组件,尤其是在存在堆叠请求的情况下.有关详细信息,请阅读AWT和Swing中的绘画.
1.当repaint()
调用方法时,事件处理程序线程通知所有组件,然后每个组件调用它们的 paintComponent()
方法.
2.调用JPanel.repaint()
将包含JPanel中的所有组件 repaint()
,并且调用JFrame.repaint()
将具有JFrame中的所有组件 repaint()
.
3.调用JFrame.repaint()以重新绘制JPanel,而无需JPanel.repaint()....