FrameView窗口关闭消息无法截取
窗口关闭,程序退出时想做一点收尾动作,发现窗口关闭时不仅截获不了消息,甚至程序就没有真正退出,是不是FrameView本身就有缺陷啊,进程都无法正常关闭?求解释,求截获窗口关闭消息,求窗口关闭时应用如何正彻底退出。
调试状态下应用窗口关闭后暂停,进程状态如下:

package TimingApp;
import org.jdesktop.application.Application;
import org.jdesktop.application.SingleFrameApplication;
public class TimingApp extends SingleFrameApplication {
@Override protected void startup() {
doShutDownWork();
show(new TimingView(this));
}
@Override protected void configureWindow(java.awt.Window root) {
}
public static TimingApp getApplication() {
return Application.getInstance(TimingApp.class);
}
private void doShutDownWork() {
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
System.out.println("Tell me where to stop");
}
});
}
public static void main(String[] args) {
launch(TimingApp.class, args);
}
}
package TimingApp;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import org.jdesktop.application.FrameView;
import org.jdesktop.application.SingleFrameApplication;
/**
*
* @author Administrator
*/
public class TimingView extends FrameView {
public TimingView(SingleFrameApplication app) {
super(app);
initComponents();
JFrame mainFrame = TimingApp.getApplication().getMainFrame();
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
@SuppressWarnings("unchecked")
private void initComponents() {
mainPanel = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
mainPanel.setName("mainPanel");
org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(TimingApp.class).getContext().getResourceMap(TimingView.class);
jLabel1.setText(resourceMap.getString("jLabel1.text"));
jLabel1.setName("jLabel1");
javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
mainPanel.setLayout(mainPanelLayout);
mainPanelLayout.setHorizontalGroup(
mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(mainPanelLayout.createSequentialGroup()
.addGap(168, 168, 168)
.addComponent(jLabel1)
.addContainerGap(190, Short.MAX_VALUE))
);
mainPanelLayout.setVerticalGroup(
mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(mainPanelLayout.createSequentialGroup()
.addGap(125, 125, 125)
.addComponent(jLabel1)
.addContainerGap(160, Short.MAX_VALUE))
);
setComponent(mainPanel);
}
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel mainPanel;
}
调试状态下应用窗口关闭后暂停,进程状态如下:

...全文
相关推荐
Android WebKit主要对象的创建和顶层MVC视图.doc
Android WebKit主要对象的创建和顶层MVC视图
iOS应用开发中UIView添加边框颜色及设置圆角边框的方法
主要介绍了iOS应用开发中UIView添加边框颜色及设置圆角边框的方法,代码基于传统的Objective-C,需要的朋友可以参考下
用opengl实现分形山
opengl实现分形山 程序通过ForTree类建立分形山的三角面片构形,在MFC_FrameView类中通过OpenGL进行三角面片的绘制,法向量的设置,光照的效果灯。在ColorSettingDialog类中进行颜色属性的调整,在主框架中通过6个按钮进行视角的变换。
iOS UICollectionView刷新时闪屏的解决方法
本篇文章主要介绍了iOS UICollectionView刷新时闪屏的解决方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Webkit组成
讲解Webkit主要组成,工程代码的结构,每部分的作用。


Java SE
