按钮数组,单击时只需一个按钮即可更改其文本

时间:2013-01-14 22:12:39

标签: java swing jbutton

我有一个数组,我填充了按钮,我想要一个单独的按钮,在点击时更改其文本。

for (int i = 0; i<4; i++)
        {
            button[i] = new JButton ("Add");
            button[i].addActionListener(this);

            box[i] = new JComboBox();
            foodOptions.add(box[i]);
            foodOptions.add(button[i]);

        }

public void actionPerformed (ActionEvent e)
    {

        button[this].setText("I've been clicked!");

    }

由于类型不兼容,当前不起作用,适合的格式是什么?

1 个答案:

答案 0 :(得分:5)

是的,将一个对象this传递给一个需要int而不是你的GUI对象的数组索引是没有意义的,所以我不确定你用这个来实现什么。< / p>

只需获取从ActionEvent的getSource()方法中点击的JButton的引用:

JButton btn = (JButton)e.getSource();
btn.setText("I've been clicked");

修改
此外,您应该避免使用this作为ActionListener,因为这意味着您可能让您的GUI类实现一个ActionListener,它要求穷人做太多事情,做太多。使用匿名内部类或者更好地使用AbstractActions,你会好得多。