编程语言
首页 > 编程语言> > java – 为什么不直接在JFrame中绘制

java – 为什么不直接在JFrame中绘制

作者:互联网

参见英文答案 > Difference between paint() and paintcomponent()?                                    2个
任何人都可以解释我为什么不应该使用paint方法直接在JFrame窗口内绘制,我应该使用paintComponent方法与JFrame内的JPanel?

提前致谢.

解决方法:

三个主要原因……

>顶级容器不是双缓冲的,当重新绘制框架时会导致闪烁,是的,你可以实现你自己的双缓冲,但……
>在框架内绘画不考虑框架边框,这意味着可以在框架下绘画.框架边框也是平台/外观特定的,这意味着尺寸会发生变化
>在Swing窗口的情况下,窗口上已经存在组件,这意味着它们在大多数情况下都会绘制(或被绘制)(由于Swing中优化的绘制引擎),因此很难产生合理的结果

对于点#2,框架装饰在“窗口”边界内绘制,而不是在它们之外

看一眼…

> How to get the EXACT middle of a screen, even when re-sized
> Java AWT drawString() does not display on window
> How can I set in the midst?

更多细节

请花时间阅读Painting in AWT and SwingPerforming Custom Painting了解更多详情

标签:paintcomponent,java,swing,paint
来源: https://codeday.me/bug/20190926/1819792.html