当前位置: 首页 > 图文教程 > Java技术 > Java基础 > Java关闭窗体的六种方法

Java基础
apatche组件的研究和使用
定时执行任务的三种方法
Java各种路径和参数
我看如何选择java和.net
Java关闭窗体的六种方法
java中容易迷惑的知识点
一个简单Thread缓冲池的实现
Java Swing中键盘事件的处理
解读内存优化编程
Java中Set的深入研究
一套JDOM操作XML文件的Base Class
Java堆和栈的区别
Thread类和Runable接口
java 定时执行任务,java定时器
递归(recursion)
java访问各种数据库连接代码
也谈JAVA值传参和引用传参
(转)一个牛人给java初学者的建议
java gui学习
JNI中文处理问题小结

Java基础 中的 Java关闭窗体的六种方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 74 ::
收藏到网摘: n/a

 

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);
}
});