【发布时间】:2012-05-08 09:51:27
【问题描述】:
JTextField 或 JComboBox 等 GUI 组件具有我可以通过调用 setName(..) 设置的名称属性。
组件名称可以包含每个字符吗?有没有定义组件名称语法的来源?
背景:为了让用户编写 FitNesse 测试,我考虑让组件属性与它们旁边的标签文本相同。但有些标签包含空格或符号,如连字符、点、逗号等。
【问题讨论】:
标签: java user-interface syntax fitnesse
JTextField 或 JComboBox 等 GUI 组件具有我可以通过调用 setName(..) 设置的名称属性。
组件名称可以包含每个字符吗?有没有定义组件名称语法的来源?
背景:为了让用户编写 FitNesse 测试,我考虑让组件属性与它们旁边的标签文本相同。但有些标签包含空格或符号,如连字符、点、逗号等。
【问题讨论】:
标签: java user-interface syntax fitnesse
据我所知,您可以使用任何字符串:http://docs.oracle.com/javase/6/docs/api/java/awt/Component.html#setName%28java.lang.String%29
来自 java 源代码。组件名是一个String,据说可以为null。设置名称功能似乎也没有任何限制:
public void setName(String name) {
String oldName;
synchronized(getObjectLock()) {
oldName = this.name;
this.name = name;
nameExplicitlySet = true;
}
firePropertyChange("name", oldName, name);
}
【讨论】:
根据这个question,我认为你不应该使用这些功能。如果你也想使用,任何字符似乎都可以接受。至少 API 中没有关于禁止字符的内容。您可能只会在外观上遇到一些问题。
【讨论】: