动态更改 java 中 JLabel 的名称
Changing the name of JLabel in java dynamically
我有一个 Swing 程序,我必须在执行块中动态更改 JLabel 的名称。
JLabel是一个对象,你给那个数据类型赋的名字会使得在Heap中分配的内存和对象自身之间发生映射,如果你想改变名字,那么通过创建一个重新分配对象新的,有一个新的变量名。
您可以使用集合
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());
}
}
您可以像这样在 ActionListener 中重命名您的组件:
public void actionPerformed(ActionEvent ae) {
myJLabel.setName("New JLabel Name");
}
我有一个 Swing 程序,我必须在执行块中动态更改 JLabel 的名称。
JLabel是一个对象,你给那个数据类型赋的名字会使得在Heap中分配的内存和对象自身之间发生映射,如果你想改变名字,那么通过创建一个重新分配对象新的,有一个新的变量名。
您可以使用集合
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());
}
}
您可以像这样在 ActionListener 中重命名您的组件:
public void actionPerformed(ActionEvent ae) {
myJLabel.setName("New JLabel Name");
}