Java 动态jPanel按钮操作命令

Java 动态jPanel按钮操作命令,java,swing,jbutton,Java,Swing,Jbutton,我想问一个与动态按钮相关的问题执行的操作。我有jFrame和jButton1的内容菜单,该菜单将引用动态jPanel1。动态jPanel1包含saveButton。我将testactionlistener附加到jButton1。我面临的问题是我已经将actionCommand设置为jPanel1.saveButton,如下代码所示。当我点击jButton1输出时,我得到了2和3。我希望2nd和3rdjPanel1.SaveButton也被单击,但只单击了3rdjPanel1.SaveButton

我想问一个与动态
按钮相关的问题
执行的操作
。我有
jFrame
jButton1
的内容菜单,该菜单将引用动态
jPanel1
。动态
jPanel1
包含
saveButton
。我将
testactionlistener
附加到
jButton1
。我面临的问题是我已经将
actionCommand
设置为
jPanel1.saveButton
,如下代码所示。当我点击
jButton1
输出时,我得到了
2
3
。我希望
2nd
3rd
jPanel1.SaveButton
也被单击,但只单击了
3rd
jPanel1.SaveButton
。我如何获得单击的
2nd
3rd
jPanel1。保存按钮

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
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入javax.swing.JButton;
公共类测试实现ActionListener{
公开考试(){
}
已执行的公共无效操作(操作事件e){

对于(int i=0;i如果希望每个
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;
}

如果希望每个
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;
}

Test
请给你的测试类更多的描述性名称。在你选择这个名称之前,有一千人,我厌倦了从我的通用测试包中删除类。就目前而言,我不理解这个问题。“我如何获得第二个和第三个jPanel1.SaveButton被单击?”如果打印了
2
,则它是第二个。如果出现
3
,则它是第三个。更一般地说:为了更快地获得帮助,请发布or。@Andrew Thompson我的意思是
jPanel1.save.doClick()
只是用
actionCommand 3
为动态
jPanel1
执行的。如果用
jPanel1
actionCommand 2
执行,没有意义。
Test
请给你的测试类更多的描述性名称。在你选择这个名称之前,有一千人,我讨厌从我的通用测试包中删除类。就目前情况而言,我不明白这个问题。“我如何才能得到点击的第二个和第三个jPanel1.save按钮?”如果打印了
2
,则是第二个按钮。如果出现
3
,则是第三个按钮。更一般地说,为了更快地获得更好的帮助,请发布一条or。@Andrew Thompson我的意思是
jPanel1.save.doClick()使用
actionCommand 3
仅对动态
jPanel1
执行
。如果使用
jPanel1
执行
actionCommand 2
则没有意义。