我使用枚举值中的节点填充我的JTree。但节点以全部大写文本显示。这是不可取的,因为我希望节点以小写显示。来自枚举值的Java树节点
例如:
public enum DaysOfTheWeek {
MONDAY("Monday", "MON", "First day of the work week."),
//etc ...
private final String fullName;
private final String abbrvName;
private final String description;
DaysOfTheWeek(String fullName, String abbrvName, String description) {
this.fullName = fullName;
//etc ...
}
public String getFullName() {
return fullName;
}
}
我曾尝试:
List<DefaultMutableTreeNode> daysOfWeekNodes = new ArrayList<>();
for(DaysOfTheWeek dotw : DaysOfTheWeek.values()) {
daysOfWeekNodes.add(new DefaultMutableTreeNode(dotw.getFullName()));
daysOfWeekNodes.get(dotw.ordinal()).setUserObject(dotw);
}
节点显示为:周一 但我想让它显示为:周一
基于文字生动的例子:
Days
|
---Monday
|
---Tuesday
不
Days
|
---MONDAY
|
---TUESDAY
我如何获得与枚举值相关的我的树节点,但其对树的文本使用全名字符串?换句话说,如何设置树节点用户对象,但名称不同?
*注 - 一个简单的解决办法是违背约定,并命名我的价值观,我希望它们显示在树中,而不是全部大写。
此代码看起来不错。问题可能出在显示的位置,而不是树的创建点。你可以发布显示代码吗? – durron597 2013-05-03 12:40:48
真的没有任何显示代码。创建后,我只是将树添加到我的面板。 – 2013-05-03 13:15:41