首先感谢所有贡献者。这是一个救星。那就是说,这是我的第一篇文章。
我已经创建了一个JButton对象的动态数组,并将一个ActionListener附加到该按钮。
public void printFound(ArrayList<Customer> found)
{
buttons = new ArrayList();
texts = new ArrayList();
for(Customer temp: found)
{
JButton btn = new JButton("Edit");
btn.addActionListener(new PushEdit());
btn.setPreferredSize(new Dimension(100, 40));
panel1.add(btn);
buttons.add(btn);
JTextArea text = new JTextArea(temp.toString(), 8, 80);
text.setLineWrap(true);
panel1.add(text);
texts.add(text);
}
}
当我点击编辑按钮时,我希望它将“按钮”中的“btn”索引传递给ActionListener,这样我就可以在另一个GUI中显示“temp”中的值。我想我要么直接传递temp,要么我需要传递“btn”的索引以及“found”的索引。
谢谢!
答案 0 :(得分:0)
我可以从您的问题中了解到,您希望获取存储在jbutton
中的buttons ArrayList
的索引以执行某些操作。
要执行此操作,您可以使用setActionCommand
和getActionCommand
方法绑定字符串以及创建的每个jbutton
和
所以你的代码就像这样
public void printFound(ArrayList<Customer> found)
{
buttons = new ArrayList();
texts = new ArrayList();
Integer index=0;
for(Customer temp: found)
{
JButton btn = new JButton("Edit");
btn.setActionCommand(index.toString());
btn.addActionListener(new PushEdit());
btn.setPreferredSize(new Dimension(100, 40));
panel1.add(btn);
buttons.add(btn);
JTextArea text = new JTextArea(temp.toString(), 8, 80);
text.setLineWrap(true);
panel1.add(text);
texts.add(text);
index=index+1;
}
}
每当你想获得索引时
System.out.print(btn.getActionCommand());