按钮中的全局变量

时间:2014-06-15 07:16:24

标签: java

如何使退出按钮成为全局变量?我正在为我的老师做一个等级的gui,我必须让它'全局',所以jframe可以达到它。这是代码:

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



public class StudentGUI extends JFrame implements ActionListener {
    public StudentGUI()
    {
    super("StudentGUI Frame");



      //TopPanel
     TopPanel tp;
     tp=new TopPanel();

     Dimension d = new Dimension(800,600);
     tp.setPreferredSize(d);
     this.add (tp, BorderLayout.NORTH);
     tp.setVisible(true);
     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     this.setSize(800,600);
        setBackground(Color.PINK);

        tp.setVisible(true);

        //TopPanel End


        //BottomPanel
        BottomPanel bp;
     bp=new BottomPanel();


     this.add (bp, BorderLayout.SOUTH);
     tp.setVisible(true);
     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     this.setSize(800,600);

        exitBtn.addActionListener(this);

        //BottomPanel End

        //MiddlePanel 

    MiddlePanel mp;
     mp=new MiddlePanel();


     this.add (mp, BorderLayout.CENTER);
     mp.setVisible(true);
     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     this.setSize(800,600);

        //MiddlePanel End

        this.setVisible(true);
    }

    public void actionPerformed(ActionEvent e){


int selectedOption = JOptionPane.showConfirmDialog(null, 
                                  "Do you want to close the window?", 
                                  "Choose", 
                                  JOptionPane.YES_NO_OPTION); 
if (selectedOption == JOptionPane.YES_OPTION) {
    System.exit(0);


//ExitBtn.addActionListener(this);

}
}
    public static void main(String[] args)
    {
        new StudentGUI();
    }


}

现在那是框架。这是面板有问题,让退出按钮执行所执行的操作。

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

public class BottomPanel extends JPanel {

public String findbtn="";
public String insertBtn="";
public String updateBtn="";
public String deleteBtn="";
Button exitBtn;

public BottomPanel() {
   JButton findbtn;
     findbtn=new JButton("Find");
        add(findbtn);

           JButton insertBtn;
     insertBtn=new JButton("Insert");
        add(insertBtn);

           JButton updateBtn;
     updateBtn=new JButton("Update");
        add(updateBtn);

           JButton deleteBtn;
     deleteBtn=new JButton("Delete");
        add(deleteBtn);

        JButton exitBtn;
     exitBtn=new JButton("Exit");
        add(exitBtn);



}
}

帮助!

2 个答案:

答案 0 :(得分:0)

如果您已经可以在GUI中看到该按钮,则无需访问主框架中的按钮,因此您需要做的就是在ActionListener内向ButtonPanel内的退出按钮添加exitBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(1); } }); {1}}您的问题将得到解决。

例如:

{{1}}

答案 1 :(得分:0)

为什么要从帧类添加它。您只能在面板类中执行此操作。但是如果你想从框架类那么,那么请记住这一点 您在BottomPanel类中的exitbtn是包私有,因此只有在框架类位于同一个包中时才能访问它。接下来就是添加动作监听器写入的位置

bp.extBtn.addActionListener(this)