<< 2006/03/24 | Home | 2006/03/26 >>
PR: 転職    転職    合宿免許    漫画    シルバー    ブライダルエステ    墓地・霊園    葬式   

回避方法

とりあえず、windowClosed()の方にSystem.exit()を移動すると大丈夫のようだ。この方がなんかしっくりくるね。でも多分バグだろうからBug Paradeには入れておいた。

    @Override public void windowClosing(java.awt.event.WindowEvent evt) {
        dispose();
    }

    @Override public void windowClosed(java.awt.event.WindowEvent evt) {
        System.exit(0);
    }

windowClosingでSystem.exit()するとハング

public class Test extends javax.swing.JFrame {
    public Test() {
        setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
        addWindowListener(new java.awt.event.WindowAdapter() {
            @Override public void windowClosing(java.awt.event.WindowEvent evt) {
                System.exit(0);
            }
        });
    }
    
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Test().setVisible(true);
            }
        });
    }
}

WindowsXP + jdk5.0_06だとxボタンを押したところで固まる。でも別のWindows2000 + jdk5.0_06環境だと大丈夫だった。何なんだろう、うちの環境だけの問題なのかな。

このサイトの掲載内容は私自身の見解であり、必ずしもIBMの立場、戦略、意見を代表するものではありません。
日本アイ・ビー・エム 花井 志生 Since 1997.6.8