油漆,油漆组件和油漆挥杆中的组件之间的区别
2022-09-01 07:26:53
和 Java Swing 中的实际区别是什么?paint()
paintComponent()
paintComponents()
我试图理解Oracle文档中解释的内容,但我不清楚。
和 Java Swing 中的实际区别是什么?paint()
paintComponent()
paintComponents()
我试图理解Oracle文档中解释的内容,但我不清楚。
paint()
JFrame
JWindow
JDialog
JApplet
paint()
JComponent
paintComponent()
paintComponents()
确保在重写方法时也使用@Override
表示法。
这样做会暗示尝试在 a 中重写的问题(它没有这样的方法),这是很常见的。paintComponent(..)
JFrame
您可能有兴趣阅读AWT和秋千中的绘画
引用:
适用于AWT轻量级组件的规则也适用于Swing组件 - 例如,paint()在渲染时被调用 - 除了Swing进一步将paint()调用分解为三个单独的方法,这些方法按以下顺序调用:
protected void paintComponent(Graphics g)
protected void paintBorder(Graphics g)
protected void paintChildren(Graphics g)
Swing 程序应覆盖 paintComponent() 而不是覆盖 paint()。虽然API允许这样做,但通常没有理由覆盖paintBorder()或paintComponents()(如果你这样做,请确保你知道自己在做什么!这种分解使程序更容易仅覆盖需要扩展的绘画部分。例如,这解决了前面提到的AWT问题,其中未能调用super.paint()阻止了任何轻量级子级的出现。