当前位置:  技术问答>java相关

类里重载了windowClosing这个函数为啥要加dispose这个方法???

    来源: 互联网  发布时间:2017-04-23

    本文导语:  package testframe; /**  * Title:   * Description:   * Copyright: Copyright (c) 2002  * Company:   * @author unascribed  * @version 1.0  */ //TestFrame.java import java.awt.*; import java.awt.event.*; public class TestFrame {         public stati...

package testframe;

/**
 * 

Title: 


 * 

Description: 


 * 

Copyright: Copyright (c) 2002


 * 

Company: 


 * @author unascribed
 * @version 1.0
 */


//TestFrame.java

import java.awt.*;
import java.awt.event.*;

public class TestFrame
{
        public static void main(String args[])
        {
                new MyFrame();
        }
}

class MyFrame extends Frame implements ActionListener
{
        Button btn;
                MyFrame()
                {
                super("我的窗口");
                btn=new Button ("关闭");
                setLayout(new FlowLayout());
                add(btn);
                btn.addActionListener(this);
                addWindowListener(new closeWin());
                setSize(300,200);
                setVisible(true);
                }


                public void actionPerformed(ActionEvent e)
                {
                        if (e.getActionCommand()=="关闭")
                        {
                        dispose();
                        System.exit(0);
                        }


                }

}

   class closeWin extends WindowAdapter
   {
   public void windowClosing(WindowEvent e)  //重载了,
                   {
                   Frame frm=(Frame)(e.getSource());
                   frm.dispose();  //这里为什么要加这个方法,当我加了断点
                   System.exit(0); //显示,这里根本没有执行,那为什么还要
                   }  //这个方法呢?
   }

|
其实直接System.exit(0);就可以了
不过比较正规的方法还要加上
setVisible(false);
dispose();
System.exit(0);

|
Frame.dispose()仅销毁窗体
System.exit(0)结束进程
WindowAdapter.windowClosing(WindowEvent e)
当窗口关闭(包括用窗口右上角的X)时会被调用。

在handsome1234 (我太菜了,) 的例子中,如果用btn关闭窗口,WindowAdapter.windowClosing(WindowEvent e)是不会执行到的,只有用窗口的X按钮关闭才会执行到。

|
调用dispose以执行windowClosed

|
dispose()方法是用来释放窗口资源的,窗口释放后程序还在继续运行,只不过看不到而已。
直到System.exit(0);运行后,程序才真正结束。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++操作符(Operator)用法(new和重载)
  • 请问重载和覆盖的区别是什么?
  • 那请问过载和重载的区别是什么?
  • c++重载的详细总结
  • C++中不能被重载的运算符介绍
  • 请问有关过载和重载的问题?
  • 关于重载的问题,超急,在线等!!!!
  • String的+是不是像c++一样重载运算符?
  • 一个scjp的题------关于重载
  • 问一个很蠢的问题:什么是重载,继承,实例,派生,接口
  • 在什么情况下重载paint()或paintComponent(),我不知道怎么办?
  • C++概念重载、覆盖、隐藏的使用说明
  • 请问方法中参数个数相同但参数类型不同,该算是overload(重载)吗?
  • 这句话对不对 用final修饰的方法是不能被该类的子类所重载的方法 ?
  • 方法重载有什么好处?
  • Java 能否实现类似于重载运算符的功能?
  • 关于“创建重载现存方法的方法”
  • c++ *运算符重载
  • ASP.NET方法如何重载需要必备哪些条件
  • 有关重载与过载之间关系的问题
  • 重载、超载是怎么回事?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3