如何解决Java-在JDialog / JFrame上调用Component#setName
我想知道在setName
的子类上调用Window
是否是一个好主意。
我注意到,例如,对话框的默认名称为dialog0
。这些名称对Swing内部有什么重要意义吗?如果是这样,我在显示窗口之前还是之后设置名称是否重要? name
的getter / setter的Javadoc没有显示任何有用的信息。
这个想法是要覆盖这些名称,以便为不包含用户数据的窗口获得更通用的名称。通常,我会使用类似putClientProperty
的东西,但是由于Windows
扩展了Component
,而不是JComponent
,所以这是不可能的。
解决方法
通常我会使用诸如putClientProperty之类的东西,但是由于Windows扩展了Component而不是JComponent,所以这是不可能的。
您可以使用JRootPane
中的JFrame
。它确实扩展了JComponent
。
JRootPane rootPane = frame.getRootPane();
rootPane.putClientProperty(...);
这将为您提供与框架关联的独特组件。
有关“ Swing”窗口的一般结构,请参见How to Use Root Panes。
这些名称是否对Swing内部重要?
我不知道。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。