摆动组件的名称属性是什么?

mor*_*ort 9 java swing properties

swing组件名称属性的用途是什么?它是在内部使用摆动吗?

背景:一位同事通过在name属性中存储文本字符串的键来实现国际化机制.然后,他只需遍历所有swing元素并获取存储在组件的name属性中的密钥.他认为名称属性似乎没有被使用,并且这是最简单的方法.

Sta*_*avL 9

来自javadoc的组件名称"设置或获取组件的名称.当您需要将文本与不显示文本的组件关联时,这可能很有用." 所以我觉得使用这个名字很好.

您还可以在组件的属性中放置一些内容.


kle*_*tra 4

内部使用的是swing吗?

简短的回答:是的。

更长的答案:相当容易验证 - 只需构建一些用户界面并遍历树即可。或者看看 SwingLabs -Demo(无法抗拒:-),

  • 单击 JXTree 演示任务并查看由 Swing 设置的简单 JFrame 的一些子级的名称(显示在树节点、括号中)。
  • 将 LAF 更改为 Nimbus,单击 JXTreeTable 演示任务,将鼠标移到 treeTable 的滚动条上,然后查看 LAF 设置的滚动条按钮的名称

下一个问题是:Swing 内部设置是否会因应用程序原因而干扰名称设置?

简短回答:很难说,很可能不是

更长的答案:我所看到的内部设置不太可能被应用程序需求覆盖,因为它们深深隐藏在容器层次结构中。事实上,一些框架(例如 fi SAF)确实使用该名称进行资源注入(类似于您描述的同事正在做的事情)。我自己的(未维护的)FormBuilder 框架负责布局约束。

name 属性的模糊(读:未定义)定义既是优点也是陷阱:

  • adv:是的,任何代码都可以使用它,它没有真正的合约
  • 陷阱:该财产可能有许多竞争用户