gpt4 book ai didi

java - 为什么我不应该在添加组件之前调用 setVisible(true)?

转载 作者:搜寻专家 更新时间:2023-10-30 21:40:35 26 4
gpt4 key购买 nike

我在这个网站上看到它写了很多次(例如 herehere ),在将组件添加到JComponent,但是没看到解释,网上的资料好像也很少。

为什么会这样,如果违反规则会怎样?

最佳答案

如果你先调用它,你不会破坏任何东西,但如果你添加了任何东西,你可能需要再次调用它。否则 Swing 不会渲染添加的组件。您需要让 JVM 调用 JFrame 的 paint(...) 方法来呈现 JFrame 的组件,而 setVisible(true) 将要求 JVM 执行此操作.如果您在调用 setVisible(true) 后添加了组件,但没有看到这些组件,您会发现如果您重新调整 JFrame 的大小,它们将“具体化”。这是因为调整它的大小会导致操作系统要求 Swing 重新绘制 GUI,这将导致调用 paint(...)

请注意,如果您在创建 GUI 后添加一个组件,您可以调用 revalidate() 并经常在其容器上调用 repaint() 来布置新组件正确然后渲染。 repaint() 绝对 如果组件中的更改涉及删除,或者在之前可视化另一个组件的地方绘制一个组件,则该组件是必需的。

高度推荐的一本书建议:Filthy Rich Clients购买 Guy 和 Haase。就买吧!您不会后悔购买的。

关于java - 为什么我不应该在添加组件之前调用 setVisible(true)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10790457/

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