我正在尝试使用JFrame创建一个GUI程序,允许我在另一个类的主类中单击按钮时调用其他类。我使用JPanel来创建GUI面板,因此我可以组织按钮等,因此面板的所有部分都不在同一个类中。我很难找到一种方法来在一个类中使用按钮单击来让main方法调用其他类来执行它们的操作。我尝试将一个int值发送到mutator和accessor,然后从中获取int,但它没有设置全局变量。这是序列问题吗?请帮忙。
以下是一小段代码,以防我不太清楚(我确定不是): 这是包含主要方法的类:
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位于main方法的另一个类中:
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);
}
}
}
答案 0 :(得分:1)
这个问题有点不清楚,我的意思是,如果我认为我明白你的要求,这就像下面这么简单。
if (e.getSource() == btn) {
Car c = new Car();
c.methodName(parameters);
}
这当然是假设Car是您项目中的一个类。