将属性添加到jButton [JAVA]

3
假设我有一个由100名员工组成的数组。 数组中的每个员工都是Employee类的实例,具有许多属性,例如姓名,方向,薪水等。
我想为数组中的每个员工显示1个按钮,当您单击其中一个按钮时,您将获得该员工的信息。
我不知道的是,如何将按钮链接到特定的员工。我想过,以某种方式将整数变量附加到按钮上,以便我知道哪个员工与特定的按钮相关联,但我真的不知道该怎么做。
有人愿意给我一些建议吗?
3个回答

1
如果你在监听器内部得到了"this",你就会得到对监听器对象的引用。你应该使用getSource()方法,像这样:

JButton j = new JButton("click here");
    j.putClientProperty("id", "employee1");

    j.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent ae) {

            JButton source = (JButton)ae.getSource();
            String id = (String) source.getClientProperty("id");
            System.out.print(id);
        }
    });

将打印 - employee1。


1
你可以使用setName(employeeId)方法为JButton设置员工的ID,或者使用putClientProperty("id", employeeId)。当你在按钮的监听器中获取回调时,你可以获取名称或属性。

你能详细解释一下getClientProperty吗?除了Java文档外,谷歌没有给我任何信息。每当我尝试在actionPerformed中使用getClientProperty(“someId”)或this.getClientProperty(“someId”)函数时,都会出现不存在的方法错误。 - Homeroe

1
你可以使用putClientPropertygetClientProperty将任何对象附加到JComponent

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接