繁体   English   中英

动态jPanel按钮actionCommand

[英]dynamic jPanel buttons actionCommand

我想问一个有关动态button actionPerformed jFrame与将参考动态内容菜单jPanel1通过cardLayoutjButton1 动态jPanel1包含saveButton 我将Test ActionListener附加到jButton1 我面临的问题是我已将actionCommand设置为jPanel1.saveButton ,如下面的代码所示。 当我单击jButton1输出时,得到23 我希望2nd3rd jPanel1.SaveButton也被单击,但是只有3rd jPanel1.saveButton被单击了。 如何获得2nd3rd 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM