我有一个Swing程序,我必须动态更改 JLabel 的名称。
答案 0 :(得分:3)
JLabel是一个对象,您指定的名称数据类型将在Heap中分配的内存与对象self之间进行映射,如果要更改名称,则通过创建新对象重新分配对象,使用新的变量名称。
您可以使用馆藏
HashMap<String, JLabel> aWeirdLabelMap = new HashMap<String,JLabel>();
aWeirdLabelMap.put("anAlias0x00", new JLabel("myLabel1"));
aWeirdLabelMap.get("anAlias0x00");
另一种方式:
List<JLabel> jlabelList = new ArrayList<JLabel>();
JLabel buf = null;
for (int i = 0; i < 5; i++) {
buf = new JLabel("label_" + i);
buf.setName(Integer.toString(i));
jlabelList.add(buf);
}
//later iterate or loop to find it
JLabel c = null;
for (JLabel jlabelList1 : jlabelList) {
if (jlabelList1.getName().equalsIgnoreCase(Integer.toString(1))) {
c = jlabelList1;
System.out.println("JlabelFound -->" + c.getName() + c.getText());
}
}
答案 1 :(得分:3)
您可以在ActionListener中重命名组件,如下所示:
public void actionPerformed(ActionEvent ae) {
myJLabel.setName("New JLabel Name");
}