大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
效果图
在吉州等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、网站建设 网站设计制作按需求定制制作,公司网站建设,企业网站建设,品牌网站设计,全网整合营销推广,外贸营销网站建设,吉州网站建设费用合理。
你想要触发的是窗口关闭事件windowClosed, 那么你需要调用dispose方法,对窗口进行销毁.
修改代码如下
public void windowClosing(WindowEvent e) {
System.out.println("windowClosing--窗体正在关闭事件");
//f.setVisible(false);//隐藏窗口
f.dispose();//销毁窗口--这行代码会触发windowClosed事件闷祥者
}
还有宴侍其他一些细节的修改,参考下面的代码
import java.awt.*;
import java.awt.event.*;
//类名不要写一个小写字母,推荐写一个完整的名词来作为类名
public class EventDemo {
public static void main(String[] args) {
Frame f = new Frame("hello");
f.setSize(300, 300);
f.setLocation(300, 200);
//f.setVisible(true);//不要先显示窗口, 先显示了窗口,就看不到"窗口打开事件"了
f.addWindowListener(new WindowListener() {
@Override
public void windowOpened(WindowEvent e) {
System.out.println("windowOpened--窗体打开事件");
}
@Override
public void windowIconified(WindowEvent e) {
System.out.println("windowIconified--窗体图标化事件");
}
@Override
public void windowDeiconified(WindowEvent e) {
System.out.println("windowDeiconifie--窗体取消图标化事件");
}
@Override
public void windowDeactivated(WindowEvent e) {
System.out.println("windowDeactivated--窗体停用事件");
}
@Override
public void windowClosing(WindowEvent e) {
System.out.println("windowClosing--窗体正在关闭事件");
//f.setVisible(false);//隐藏窗口
f.dispose();//销毁窗口
}
@Override
public void windowClosed(WindowEvent e) {
System.out.println("windowClosed--窗体关闭事件");
System.exit(0);
}
@Override
public void windowActivated(WindowEvent e) {
System.out.println("windowActivated--窗体激蚂薯活事件");
}
});
f.setVisible(true);//窗口显示
}
}
你少了一个菜单项,在菜单项上添加监听器。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
public class TestWin extends JFrame {
{
JMenuBar jmb = new JMenuBar();//创建菜单栏
JMenu jm1 = new JMenu("帮助");//创建菜单
jmb.add(jm1);
JMenuItem 瞎滚jmi = new JMenuItem("帮助");//创建菜单项
jm1.add(jmi);//把菜单项添加到菜单中
jmi.addActionListener(new ActionListener() {//给菜单项添加动作监听器
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(TestWin.this, "窗口中有一磨游余句话");//显示消息对话框
}
});
setJMenuBar(jmb);
setTitle("磨誉时钟");// 标题
setSize(800, 600);
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口点击关闭时,退出程序
setVisible(true);// 窗口可见
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() - new TestWin());
}
}
import java.awt.Frame;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JOptionPane;
public class Windows1 {
Frame f;
public void display() {
f = new Frame("窗口事件1");
f.setSize(300, 200);
f.addWindowListener(new WinClose(f)); // 为窗口f注册窗口事件监听器为WinClose类对象
f.setVisible(true);
}
public static void main(String args[]) {
(new Windows1()).display();
}
}
class WinClose implements WindowListener {
private Frame f;
public WinClose(Frame f) {
super();
this.f = f;
}
public void windowClosing(WindowEvent e) {
JOptionPane.showMessageDialog(f, "退出");
f.dispose();
System.exit(0); // 实现WindowListener接口中配纯简的抽象方法,在windowClosing方法中写入语句,裤宽结束程序培裤
}
public void windowActivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowClosed(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowDeactivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowDeiconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowIconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowOpened(WindowEvent arg0) {
// TODO Auto-generated method stub
}
}
方法一:
类 JFrame
javax.swing.JFrame
JFrame中的方法void setDefaultCloseOperation(int)可以设置
以下为改方法的用法:
setDefaultCloseOperation
public void setDefaultCloseOperation(int operation)设置用户在此窗体上发起
"close" 时默认执行的操作。必须脊销指定以下选项之一:
DO_NOTHING_ON_CLOSE(在 WindowConstants 中定义):不执行任何操作;要求程序在已注册的
WindowListener 对象的 windowClosing 方法中处理该操作。
HIDE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册的 WindowListener
对象后自动隐藏该窗体。
DISPOSE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册 WindowListener
的对象后自动隐藏并释放该窗体。
EXIT_ON_CLOSE(在 JFrame 中定义):使用 System exit
方法退出应用程序。仅在应用程序中使用。
默认情况下,该值被设置为 HIDE_ON_CLOSE。更改此属性的值将导致激发属性更改事件,其属性名称为
"defaultCloseOperation"。
注:当 Java 虚拟机 (VM) 中最衫野庆后一个可显示窗口被释放后,虚拟机可能会终止
要实现你说的,应该采用
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
方法二:
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Test extends JFrame {
public Test(){
this.setTitle("title");
this.setSize(300,200);
this.setLocation(100,100);
//设置关闭时什么也不做
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
//监听关闭按钮的点击操作
this.addWindowListener(new WindowAdapter(){
//new 一个WindowAdapter 类 重写windowClosing方法
//WindowAdapter是个适配器类 具体看jdk的帮助文或握档
public void windowClosing(WindowEvent e) {
//这里写对话框
if(JOptionPane.showConfirmDialog(null,
"退出","提
示",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION){
System.exit(0);
}
}
});
this.setVisible(true);
}
public static void main(String[] args) {
new Test();
}
}