gpt4 book ai didi

java - 为什么覆盖顶层容器中的油漆如此糟糕?

转载 作者:行者123 更新时间:2023-11-30 07:16:16 25 4
gpt4 key购买 nike

为什么覆盖 top-level containerpaint() 方法如此糟糕?像 JFrame 吗?它会导致什么样的问题?

最佳答案

原因有很多,但很多还取决于您使用的工具包。

一般来说,在顶层容器上使用paint 会将您锁定在给定的容器中(即FrameApplet)。这也会影响您重用组件的能力,因为无法将窗口添加到另一个窗口。

另一个问题是大多数框架都添加了边框(通常包含标题和框架控件的框架边框)。绘制到顶层容器不会考虑这些插图,这意味着如果您在位置 0x0 处绘制,您将在框架的标题栏下方绘制。

在 Swing 下,顶级容器不是双缓冲的。这意味着重绘往往会闪烁,因为每个元素都直接渲染到单独的图形层,而不是一次性绘制。

同样在 Swing 中,顶层容器由 JRootPane 控制,它在容器顶部放置一个内容 Pane (如果您正在使用它,还有菜单栏)。这意味着您的绘画工作可能会被这些组件覆盖。

我还要补充(在 swing 下)组件绘制层/链更灵活,让您有机会在不同的层上绘制,尽管一般来说,您应该使用 paintComponent

关于java - 为什么覆盖顶层容器中的油漆如此糟糕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17157956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com