[英]dynamic jPanel buttons actionCommand
我想问一个有关动态button
actionPerformed
。 我jFrame
与将参考动态内容菜单jPanel1
通过cardLayout
和jButton1
。 动态jPanel1
包含saveButton
。 我将Test ActionListener
附加到jButton1
。 我面临的问题是我已将actionCommand
设置为jPanel1.saveButton
,如下面的代码所示。 当我单击jButton1
输出时,得到2
和3
。 我希望2nd
和3rd
jPanel1.SaveButton
也被单击,但是只有3rd
jPanel1.saveButton
被单击了。 如何获得2nd
和3rd
jPanel1.SaveButton
被单击?
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
public class Test implements ActionListener {
public Test() {
}
public void actionPerformed(ActionEvent e) {
for (int i = 0; i<2; i++){
jPanel1.save.setActionCommand(String.valueOf(i+2));
String n = jPanel1.save.getActionCommand();
jPanel1.save.doClick();
System.out.println("jPanel1: " + n);
}
System.out.println("The action have been performed");
}
public static void main(String[] agrs) {
JButton but = new JButton();
but.addActionListener(new Test());
but.doClick();
}
}
Output:
jPanel1: 2
jPanel1: 3
如果您希望每个ActionListener
实例引用一个不同的JPanel
,则可以将对该“ JPanel”的引用传递给其构造函数:
JPanel panel1 = new JPanel();
JButton but = new JButton();
but.addActionListener(new Test(panel1));
并更改构造函数以使用该引用:
JPanel panel;
public Test(JPanel panel) {
this.panel = panel;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.