动态更改 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");
}