Swing for Java 1.5 では、ユーザーがバックグラウンドで他のことを実行できるようにするダイアログを作成したいと考えています。このダイアログには、ダイアログを閉じることができる 1 つのボタンが必要です。ユーザーが X 秒以内にダイアログを閉じない場合は、自動的に閉じる必要があります。どちらの場合も、ダイアログを閉じた後にルーチンを実行する必要があります。
モーダル ダイアログで Swing Timer を使用しようとしましたが、動作します。しかし、上で気づいたように、非モーダル ダイアログが必要です。modal-Property を false に設定すると、ダイアログがすぐに消えます。
なぜこれが起こるのか、誰かが知っていますか?
JOptionPane pane = new JOptionPane (text, JOptionPane.WARNING_MESSAGE);
pane.setOptions(new String[]{"Close"});
final JDialog dialog = pane.createDialog(frame, title);
//dialog.setModal(false);
Timer timer = new Timer(time, new ActionListener() {
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
}
});
timer.setRepeats(false);
timer.start();
dialog.setVisible(true);
//routine to do after the dialog disappears