首页 > 解决方案 > Java - 在 JDialog / JFrame 上调用 Component#setName

问题描述

我想知道setName调用Window. 我注意到,例如一个对话框具有默认名称dialog0。这些名称对 Swing 内部结构是否重要?如果是这样,我在显示窗口之前或之后设置名称是否重要?getter/setter 的 javadocname没有显示任何有用的东西。

想法是覆盖这些名称,以便为不包含用户数据的窗口获取更通用的名称。通常我会使用类似的东西putClientProperty,但是由于Windowsextends Component,而不是JComponent,这是不可能的。

标签: javaswingwindow

解决方案


通常我会使用 putClientProperty 之类的东西,但由于 Windows 扩展了 Component,而不是 JComponent,所以这是不可能的。

您可以使用JRootPane. JFrame它确实扩展了JComponent

JRootPane rootPane = frame.getRootPane();
rootPane.putClientProperty(...);

这将为您提供与框架关联的独特组件。

有关 Swing 窗口的一般结构,请参阅如何使用根窗格

这些名称对 Swing 内部结构是否重要?

不是我知道的。


推荐阅读