[笔记]java应用程序窗口关闭的六种方式

来源:互联网 发布:非诚勿扰程序员死亡 编辑:程序博客网 时间:2024/06/01 08:21

在这里做个笔记

1.使用JFrame的enableEvents和processWindowEvent

/    /Frame1.java   import java.awt.*;   import java.awt.event.*;   import javax.swing.*;   public class Frame1 extends JFrame {   public Frame1() {   enableEvents(AWTEvent.WINDOW_EVENT_MASK);   this.setSize(new Dimension(400, 300));   this.setTitle("Frame1");   }   protected void processWindowEvent(WindowEvent e) {   super.processWindowEvent(e);   if (e.getID() == WindowEvent.WINDOW_CLOSING) {   System.exit(0);   }   }   }   2.直接实现WindowListener接口  //Frame1.java   import java.awt.*;   import java.awt.event.*;   public class Frame1 extends Frame implements WindowListener {   public Frame1() {   this.setSize(new Dimension(400, 300));   this.setTitle("Frame1");   this.addWindowListener(this);   }   public void windowClosing(WindowEvent windowEvent) {   System.exit(0);   }   public void windowOpened(WindowEvent windowEvent) { }   public void windowClosed(WindowEvent windowEvent) { }   public void windowIconified(WindowEvent windowEvent) { }   public void windowDeiconified(WindowEvent windowEvent) { }   public void windowActivated(WindowEvent windowEvent) { }   public void windowDeactivated(WindowEvent windowEvent) { }   }   3.直接继承窗体适配器WindowAdapter

 //Frame1.java
  import java.awt.*;
  import java.awt.event.*;
  public class Frame1 extends WindowAdapter {
  public Frame1() {
  Frame f=new Frame();
  f.setSize(new Dimension(400, 300));
  f.setTitle(“Frame1”);
  f.addWindowListener(this);
  f.setVisible(true);
  }
  public static void main(String[] s){
  new Frame1();
  }
  public void windowClosing(WindowEvent windowEvent) {
  System.exit(0);
  }
  }

  4.间接继承窗体适配器WindowAdapter 

//Frame1.java
  import java.awt.*;
  import java.awt.event.*;
  public class Frame1 extends Frame {
  public Frame1() {
  this.setSize(new Dimension(400, 300));
  this.setTitle(“Frame1”);
  this.addWindowListener(new winAdapter());
  this.setVisible(true);
  }
  public static void main(String[] s){
  new Frame1();
  }
  }
  class winAdapter extends WindowAdapter{
  public void windowClosing(WindowEvent windowEvent) {
  System.exit(0);
  }
  }

  5.间接实现WindowListener接口

 //Frame1.java
  import java.awt.*;
  import java.awt.event.*;
  public class Frame1 extends Frame {
  public Frame1() {
  this.setSize(new Dimension(400, 300));
  this.setTitle(“Frame1”);
  this.addWindowListener(new winEventHandle());
  this.setVisible(true);
  }
  public static void main(String[] s){
  new Frame1();
  }
  }
  class winEventHandle implements WindowListener {
  public void windowClosing(WindowEvent windowEvent) {
  System.exit(0);
  }
  public void windowOpened(WindowEvent windowEvent) { }
  public void windowClosed(WindowEvent windowEvent) { }
  public void windowIconified(WindowEvent windowEvent) { }
  public void windowDeiconified(WindowEvent windowEvent) { }
  public void windowActivated(WindowEvent windowEvent) { }
  public void windowDeactivated(WindowEvent windowEvent) { }
  }

  6.使用Inner Class

//Frame1.java
  import java.awt.*;
  import java.awt.event.*;
  public class Frame1{
  public Frame1(){
  Frame f=new Frame();
  f.addWindowListener(new WindowAdapter(){
  public void windowClosing(WindowEvent e){
  System.exit(0);
  }
  });
  f.setSize(new Dimension(400, 300));
  f.setVisible(true);
  }
  public static void main(String[] s){
  new Frame1();
  }
  }

  Jframe的关闭方法:   

setDefaultCloseOperation(EXIT_ON_CLOSE);
  frame的关闭方法如下:
  this.addWindowListener(new java.awt.event.WindowAdapter() {
  public void windowClosing(java.awt.event.WindowEvent e) {
  System.exit(0);
  }
  });
“`

0 0