按下按钮,但关闭不了窗口,这是什么回事的?

mearer 2013-04-29 12:20:04
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();
}
}


这段代码中,我想实现按下完成这个按钮后关闭窗口,但运行后,按下按钮却没有反应,请问这是怎么回事的?
...全文
294 11 打赏 收藏 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
来到我身边 2013-05-03
  • 打赏
  • 举报
回复
解决了就好啊,恭喜LZ
来到我身边 2013-05-03
  • 打赏
  • 举报
回复
没有该按钮添加事件亦或是虽然为其写了事件,但是没有对其进行监听
huan_ji 2013-05-01
  • 打赏
  • 举报
回复
楼主把这个 sframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 换成这个System.exit(0);
mearer 2013-05-01
  • 打赏
  • 举报
回复
嗯,已经搞定了,谢谢啦!
yongtaimen 2013-04-30
  • 打赏
  • 举报
回复
sframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Foxeagle 2013-04-29
  • 打赏
  • 举报
回复
ActionListener bl = new ActionListener(){ public void actionPerformed(ActionEvent e) { sframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } 楼主把这个监听 修改成 ActionListener bl = new ActionListener(){ public void actionPerformed(ActionEvent e) { sframe.dispose(); } //sframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)是设置按钮x的动作 //sframe.dispose()则是销毁本窗体,可以用窗体里面的按钮做监听出发 两者是有区别的
LCore 2013-04-29
  • 打赏
  • 举报
回复
引用 楼主 mearer 的回复:
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(); } } 这段代码中,我想实现按下完成这个按钮后关闭窗口,但运行后,按下按钮却没有反应,请问这是怎么回事的?
sframe.EXIT_ON_CLOSE;试试
mearer 2013-04-29
  • 打赏
  • 举报
回复
可以了,谢谢啦!
huntor 2013-04-29
  • 打赏
  • 举报
回复
引用 4 楼 mearer 的回复:
如果我想按下按钮后,隐藏窗口,那应该怎样操作啊?
sframe.setVisible(false); // hide
mearer 2013-04-29
  • 打赏
  • 举报
回复
如果我想按下按钮后,隐藏窗口,那应该怎样操作啊?
Iceboll 2013-04-29
  • 打赏
  • 举报
回复
楼上说得没错

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧