Java 如何使用按钮操作事件调用其他类?

Java 如何使用按钮操作事件调用其他类?,java,swing,jframe,jpanel,actionlistener,Java,Swing,Jframe,Jpanel,Actionlistener,我正在尝试使用JFrame创建一个GUI程序,它允许我在另一个类的主类中单击按钮时调用其他类。我使用JPanel创建GUI面板,以便组织按钮等,因此面板的所有部分不是在同一个类中。我很难想出一种方法,在一个类中单击按钮,让主方法调用其他类来执行它们的操作。我尝试将一个int值发送给一个mutator和accessor,然后从中获取int值,但它没有设置全局变量。这是顺序问题吗?请帮忙 下面是一小段代码,以防我不太清楚(我肯定我不清楚): 这是包含main方法的类: import javax.sw

我正在尝试使用JFrame创建一个GUI程序,它允许我在另一个类的主类中单击按钮时调用其他类。我使用JPanel创建GUI面板,以便组织按钮等,因此面板的所有部分不是在同一个类中。我很难想出一种方法,在一个类中单击按钮,让主方法调用其他类来执行它们的操作。我尝试将一个int值发送给一个mutator和accessor,然后从中获取int值,但它没有设置全局变量。这是顺序问题吗?请帮忙

下面是一小段代码,以防我不太清楚(我肯定我不清楚): 这是包含main方法的类:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;

public class GUI extends JFrame{

private hPanel hp;
private mPanel mp;

public GUI(){
setLayout(new BorderLayout());
setTitle("GUI");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
hp = new hPanel();
mp = new mPanel();
add(hp, BorderLayout.NORTH);
add(mp, BorderLayout.CENTER);
pack();
setVisible(true);
}
public static void main(String[]args){
mPanel MP = new mPanel();
pPanel PP = new pPanel();
int buttIn = MP.getbuttonIndicator();


if (MP.getbuttonIndicator()==1){
PP.tester1();
}
else if (MP.getbuttonIndicator()==2){
PP.tester2();
}
else if (MP.getbuttonIndicator()==3){
PP.tester3();
}
else if (MP.getbuttonIndicator()==4){
PP.tester4();
}
else if (MP.getbuttonIndicator()==5){
PP.tester5();
}
else if (MP.getbuttonIndicator()==6){
PP.tester6();
}
new Grade();

}
}
我想使用这个actionListener中的按钮启动从main到其他类的调用。此actionListener位于主方法的另一个类中:

private class JButtonListener implements ActionListener{
public void actionPerformed(ActionEvent e){
if (e.getSource()==button1){
buttonIndicator = 1;
setbuttonIndicator(buttonIndicator);
}
if (e.getSource()==button2){
buttonIndicator = 2;
setbuttonIndicator(buttonIndicator);
}
if (e.getSource()==button3){
buttonIndicator = 3;
setbuttonIndicator(buttonIndicator);
}
if (e.getSource()==button4){
buttonIndicator = 4;
setbuttonIndicator(buttonIndicator);
}
if (e.getSource()==button5){
buttonIndicator = 5;
setbuttonIndicator(buttonIndicator);
}
if (e.getSource()==button6){
buttonIndicator = 6;
setbuttonIndicator(buttonIndicator);
}

}
}

这个问题有点不清楚,我的意思是,如果我认为我理解你的问题的话,这就像下面一样简单

if (e.getSource() == btn) {
Car c = new Car();
c.methodName(parameters);
}

这当然是假设Car是你的项目中的一个类。

你可能想考虑一下,它为你提供了一个方法来指定一个特定的动作的一个独立的工作单位,然后它可以应用到<代码> JButton < /代码>。这将允许您封装所需的引用,并在按钮被触发时采取适当的操作…actionListener位于没有main方法的类中,我可以从main方法之外执行此操作吗?我可以传递一个值,比如carc=新车(1);正确吗?是的,只要通过类的构造函数传递
1
满足“构造”条件(如果满足的话)。非常感谢您的帮助,这是一个非常简单的答案,但这是我几天来一直在寻找的缺失部分。你救了我的命@用户2848565没问题,很高兴我能帮忙。