我正在嘗試使用JFrame創建一個GUI程序,該程序允許我在另一個類的主類中單擊按鈕時調用其他類。我使用JPanel來創建GUI面板,以便我可以組織按鈕等,因此面板的所有部分都不在同一個類中。我很難找出一種方法來在一個類中使用按鈕單擊來讓主要方法調用其他類來執行它們的操作。我試着發送一個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中的按鈕來啓動從主到其他類的調用。這是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);
}
}
}
您可能需要考慮查看[如何使用操作](http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html),它爲您提供了指定自我的方法包含一個特定行爲的工作單元,然後可以將其應用於'JButton'。這將允許您封裝所需的引用,並在按鈕被觸發時採取適當的操作... – MadProgrammer