A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 伍仪华 黑马帝   /  2011-7-21 17:38  /  2796 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

刚开始学GUI,下面这个程序,哪位修改一下,使窗口能够关闭,多谢了

import java.awt.*;
//创建一个框架对象,并且它的名称是“学生管理系统”。
//通过setSize方法来设置框架大小
//通过setVisible方法来设置框架显示
//按关闭按钮时结束窗体所在的应用程序
public class FrameTest {

public static void main(String[] args) {
  Frame frame = new Frame("学生管理系统");
  frame.setSize(300,200);
  frame.setVisible(true);
  frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void setDefaultCloseOperation(int operation){
  
}
}
[ 本帖最后由 伍仪华 于 2011-07-21  17:39 编辑 ]

评分

参与人数 1技术分 +1 收起 理由
admin + 1 不懂的就问马友们!

查看全部评分

4 个回复

倒序浏览
最后关闭窗口的方法上不对.
首先Frame 没有这样的关闭窗口的方法,其次你自己写的方法就没有被调用,第三,传递的常量也也没定义
你的本意应该是这样的代码吧:
class MyFrame extends JFrame{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
}
回复 使用道具 举报
Frame类没有frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
你可以把 Frame frame = new Frame("学生管理系统"); 修改成JFrame frame=new JFrame();

或者Frame frame = new Frame("学生管理系统");
frame.addWindowListener(new WindowAdapter()
{
    public void windowClosing(WIndowEvent event)
        {
                    dispose();
                     System.exit(0);
       }
})
回复 使用道具 举报
黑马网友  发表于 2011-7-21 18:38:50
板凳
你理解错了, setDefaultCloseOperation()方法是Jframe中才有的,你那种想要自己实现方法是不实际的,没有实现监听器事件是不会触发的,除非你在你写的方法中有两种更改方法中写上监听器代码。最直接的方法就是将Frame改为JFrame再将你最后写的方法去掉。另外在编程中尽量使用swing 要比awt 简便快捷。
回复 使用道具 举报
黑马网友  发表于 2011-7-21 18:46:56
报纸
关闭窗口办法:
1、使用监听器并且使用了匿名类和适配器  frame.addWindowListener(new WindowAdapter(){
                        public void windowClosing(WindowEvent e){
                                frame.dispose();
                        }
2.class MyWindowListener implements WindowListener{}  
定义一个自己的类,实现WindowListener,要覆盖
public void windowClosing(WindowEvent e) {
                                  ((Window)e.getComponent()).dispose();
                System.exit(0);}
在主函数中frame.addWindowListener(new YourMyWindowListener());
3、还有一种就是在自己框架中定义一个按钮,在让按钮实现这一功能
     Button bt=new Button("zsw");
         // 匿名内置类
          bt.addActionListener( new ActionListener(){
                  public void actionPerformed(ActionEvent e)
                  {
                        frame.dispose();
                          System.exit(0);
                  }
          });
你也可以自己查看API文档,自己去认真看看这些方法。

评分

参与人数 1技术分 +2 收起 理由
admin + 2 再接再励!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马