java中窗口关闭

             刚刚看到了Swing组件这里,创建了JFrame一个小窗口,然后习惯点击关闭发现能够关闭掉,改进的GUI就是不一样。后来看了JDK文档才发现,这个窗口并没有关闭只是隐藏了,内存中依然存在,必须通过windowClosing事件处理调用dispose才能关闭,或者设置JFram为JFrame.EXIT_ON_CLOSE,点击时时就会关闭。

            回想起之前关于窗口关闭的方法似乎只记得了

f.addWindowListener(new WindowAdapter(){
			public void windowClosing()
			{
				System.exit(0);
			}
			

这个方法。查了查关闭窗口方法:

java中如何关闭Frame窗口?
分三种情况来说明:
   1. 用户类继承自Frame;
   2. Frame对象作为用户类的数据成员;
   3. 用户类继承自WindowAdapter.
  
1. 用户类继承自Frame:
代码如下:

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

 public  class MyFrame extends  Frame
{

 public void display()
 {

  this.setTitle("MyFrame");
  this.setSize(480,200);
  this.setLocation (200,400);
  this.setBackground (Color.lightGray);

  this.setVisible(true);

 }


 public static void main (String args[])
 {

  MyFrame f = new MyFrame();

  f.addWindowListener(new WindowAdapter()  //为了关闭窗口
  {
   public void windowClosing(WindowEvent e)
   {
       System.exit(0);
   }
  });

  f.display();

 }
}

2. Frame对象作为用户类的数据成员:

代码如下:

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

public   class MyFrame2
{
     Frame f = new Frame();
     MyFrame2()
     {
      f.addWindowListener(new WindowAdapter()  //为了关闭窗口
      {
       public void windowClosing(WindowEvent e)
       {
           System.exit(0);
       }
      });
     }


 public void display()
 {

  f.setTitle("MyFrame");
  f.setSize(480,200);
  f.setLocation (200,400);
  f.setBackground (Color.lightGray);

  f.setVisible(true);

 }


 public static void main (String args[])
 {

  new MyFrame2().display();

 }
}

3. 用户类继承自WindowAdapter,而窗口对象Frame作为用户类的数据成员.

代码如下:

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

public   class MyFrame3 extends WindowAdapter
{
 Frame f = new Frame();

 public void display()
 {

  f.setTitle("MyFrame");
  f.setSize(480,200);
  f.setLocation (200,400);
  f.setBackground (Color.lightGray);

  f.addWindowListener (this);  //窗体f--注册窗体事件监听器


  f.setVisible(true);

 }

 public void windowClosing(WindowEvent e)
 {
  System.exit(0);
 }


 public static void main (String args[])
 {

  new MyFrame3().display();


 }
}

原文链接点击打开链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值