
import javaawteventWindowAdapter;
import javaawteventWindowEvent;
import javautilconcurrentTimeUnit;
import javaxswingJFrame;
public class TestFrame extends JFrame {
public static void main(String[] args) {
new TestFrame()setVisible(true);
}
public TestFrame() {
setBounds(200, 200, 300, 500);
addWindowListener(new WindowAdapter() {
@Override
public void windowActivated(WindowEvent e) {
try {
TimeUnitSECONDSsleep(1);//这一句是为了让你看清效果而加的让它延迟一秒钟再关闭,如果想要效果更明显, 你可以把它去掉
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1printStackTrace();
}
Systemexit(0);
}
});
}
}
关键:
1 调用JFrame的setDefaultCloseOperation(),设置关闭模式为DO_NOTHING_ON_CLOSE(就是默认关闭效用减半,仅触发WindowListener中的windowClosing方法)
2 d对话框,确认关闭后,添加JFrame的dispose()
代码:
package gui;
import javaawteventActionEvent;
import javaawteventActionListener;
import javaawteventWindowEvent;
import javaawteventWindowListener;
import javaxswingJButton;
import javaxswingJFrame;
import javaxswingJOptionPane;
public class MainFrame extends JFrame {
//退出按钮
JButton exitBtn;
//保留本框架实例的指针
JFrame thisFrame;
public static void main(String[] args) {
MainFrame mainFrame=new MainFrame();
mainFramepack();
mainFramesetVisible(true);
}
public MainFrame(){
thisFrame=this;
initGUI();
}
private void initGUI(){
exitBtn=new JButton("退出");
exitBtnsetBounds(0, 0, 30, 20);
exitBtnaddActionListener(new exitBtnListener());
thisFramegetContentPane()add(exitBtn);
thisFrameaddWindowListener(new windowListener());
//关键!框架将不会真正关闭
thisFramesetDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
}
//确认关闭
private void sureExit(){
int result=JOptionPaneshowConfirmDialog(this, "你确定要退出本窗口不?", "Information", JOptionPaneYES_NO_OPTION);
if(result==JOptionPaneNO_OPTION){
return;
}
//真正执行关闭的语句
thisFramedispose();
}
//实现接口
class windowListener implements WindowListener{
@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosing(WindowEvent e) {
//在关闭时调用“确认关闭”方法
sureExit();
}
@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
}
//实现接口
class exitBtnListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
//调用“确认关闭”方法
sureExit();
}
}
}
以上就是关于java如何在窗口打开过程中关闭窗口全部的内容,包括:java如何在窗口打开过程中关闭窗口、我是java新手。java中点击关闭窗口,然后怎样才能出现提示对话框呢点击确定才真正退出的那种。麻烦啦、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)