Java 如何调用Jbutton的变量名

Java 如何调用Jbutton的变量名,java,swing,Java,Swing,我正在做一个学校项目,我正在使用netbeans IDE。在这个项目中,我的程序有许多按钮使用相同的代码,但名称不同。有没有办法调用按钮本身的名称,而不是每次都重新键入变量名 sa1++; if(sa1 % 2 == 0) { A1.setEnabled(true); A1.setBackground(Color.green); A1.setOpaque(false); } else { A1.setEnab

我正在做一个学校项目,我正在使用netbeans IDE。在这个项目中,我的程序有许多按钮使用相同的代码,但名称不同。有没有办法调用按钮本身的名称,而不是每次都重新键入变量名

sa1++;
    if(sa1 % 2 == 0) {
        A1.setEnabled(true);
        A1.setBackground(Color.green);
        A1.setOpaque(false);
    }
    else {
        A1.setEnabled(false);
        A1.setBackground(Color.red);
        A1.setOpaque(true);
    }
请注意,按钮按字母顺序排列,最多5个。有没有一种方法可以让它类似于:

[Jbutton变量名].setEnabled(true)

这样就不用花那么多时间了

我的老师对此也很好奇,这对未来的项目也有帮助。
编辑:老师知道怎么做,我的意思是他想看看我怎么做。你们这些家伙有点苛刻,不是吗?

将他们添加到
列表中,然后进行foreach循环

在这个项目中,我的程序有很多使用相同代码的按钮, 但名字不同。而不是重新键入变量名 每一次,有没有一种方法可以调用按钮本身的名称

sa1++;
    if(sa1 % 2 == 0) {
        A1.setEnabled(true);
        A1.setBackground(Color.green);
        A1.setOpaque(false);
    }
    else {
        A1.setEnabled(false);
        A1.setBackground(Color.red);
        A1.setOpaque(true);
    }
将其重构为一个方法

示例:

public void TestMethod(JButton button)
    if(sa1 % 2 == 0) {
        button.setEnabled(true);
        button.setBackground(Color.green);
        button.setOpaque(false);
    }
    else {
        button.setEnabled(false);
        button.setBackground(Color.red);
        button.setOpaque(true);
    }
}
TestMethod(A1);
TestMethod(A2);
TestMethod(A3);
TestMethod(A4);
然后,每次只需调用该方法并传入相应的按钮引用

示例:

public void TestMethod(JButton button)
    if(sa1 % 2 == 0) {
        button.setEnabled(true);
        button.setBackground(Color.green);
        button.setOpaque(false);
    }
    else {
        button.setEnabled(false);
        button.setBackground(Color.red);
        button.setOpaque(true);
    }
}
TestMethod(A1);
TestMethod(A2);
TestMethod(A3);
TestMethod(A4);

将按钮放在一个数组中:

//change the 5 to however many buttons you want to have
JButton[] buttons = new JButton[5];
然后初始化它们:

buttons[0] = new JButton();
//add any other initialization, like event handlers
然后像这样循环:

for (int i = 0; i < buttons.length; i++) {
    //replace the line below with whatever you want to do with each button
    performSomeAction(buttons[i]);
}

看起来现在最好的办法就是找一个新老师和一个新班级。你做了什么调查。事实上,老师不知道如何解决这个问题,这应该让一些人非常担心,因为通过基础培训,您所有问题的答案都是通过对Java的基本理解来解决的。不管怎样,只是你写错了。然而,编辑了这个问题之后,现在一切都变得有意义了。希望提供的答案能帮助您解决问题。祝您进入爪哇之旅好运。:)。