按下按钮,但关闭不了窗口,这是什么回事的?
package guessnumber;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class setNum extends JFrame {
JFrame sframe = new JFrame("猜数设置");
JLabel slabel1 = new JLabel("请输入一个数:");
JLabel slabel2 = new JLabel("所猜数的范围:");
JLabel slabel3 = new JLabel("最大猜数次数:");
JLabel slabel4 = new JLabel(" - ");
JTextField stf1 = new JTextField(10);
JTextField stf2 = new JTextField(5);
JTextField stf3 = new JTextField(5);
JTextField stf4 = new JTextField(10);
static JButton sbutton = new JButton("完成");
JPanel spanel1 = new JPanel(new FlowLayout(FlowLayout.LEFT));
JPanel spanel2 = new JPanel(new FlowLayout(FlowLayout.LEFT));
JPanel spanel3 = new JPanel(new FlowLayout(FlowLayout.LEFT));
JPanel spanel4 = new JPanel();
ActionListener bl = new ActionListener(){
public void actionPerformed(ActionEvent e) {
sframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
};
public setNum(){
sframe.setBounds(550, 200, 280, 250);
sframe.setLayout(new GridLayout(4,1));
sframe.add(spanel1);
sframe.add(spanel2);
sframe.add(spanel3);
sframe.add(spanel4);
spanel1.add(slabel1);
spanel1.add(stf1);
spanel2.add(slabel2);
spanel2.add(stf2);
spanel2.add(slabel4);
spanel2.add(stf3);
spanel3.add(slabel3);
spanel3.add(stf4);
spanel4.add(sbutton);
sbutton.addActionListener(bl); //sbutton注册监听器
sframe.setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
setNum sn = new setNum();
}
}
这段代码中,我想实现按下完成这个按钮后关闭窗口,但运行后,按下按钮却没有反应,请问这是怎么回事的?