如何使退出按钮成为全局变量?我正在为我的老师做一个等级的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);
}
}
帮助!
答案 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)