我有一个用按钮填充的数组,我希望单个按钮在单击时更改其文本。
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!");
}
当前因为不兼容的类型不工作,什么格式合适?
最佳答案
是的,将对象 this
传递到需要 int 的数组索引中是没有意义的,而不是您的 GUI 对象,所以我不确定您试图通过这个。
只需从 ActionEvent 的 getSource()
方法获取对已单击的 JButton 的引用:
JButton btn = (JButton)e.getSource();
btn.setText("I've been clicked");
编辑:
此外,您应该避免使用 this
作为您的 ActionListener,因为这意味着您可能让您的 GUI 类实现一个 ActionListener,它要求可怜的类做太多的事情,做太多的事情。使用匿名内部类或者使用 AbstractActions 会更好。
关于java - 按钮数组,仅使一个按钮在单击时更改其文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14327709/