こんにちは、Java Swing JDialog
ボックス(または別のSwingオブジェクトタイプ)を作成することができます。特定のイベントを表示し、遅延の後に自動的にダイアログを閉じます。 なしユーザーはダイアログを閉じる必要はありませんか?数秒後にJava Swing JDialogボックスのタイマーを閉じることができます
10
A
答えて
7
はい - もちろん可能です。あなたは休暇を予定しようとしましたか?
JFrame f = new JFrame();
final JDialog dialog = new JDialog(f, "Test", true);
//Must schedule the close before the dialog becomes visible
ScheduledExecutorService s = Executors.newSingleThreadScheduledExecutor();
s.schedule(new Runnable() {
public void run() {
dialog.setVisible(false); //should be invoked on the EDT
dialog.dispose();
}
}, 20, TimeUnit.SECONDS);
dialog.setVisible(true); // if modal, application will pause here
System.out.println("Dialog closed");
上記のプログラムは、20秒後にダイアログを閉じますし、あなたがテキストが表示されますはコンソール
3
私はスイングタイマーを使用するに印刷された「ダイアログが閉じて」。 Timerが起動すると、コードはEvent Dispatch Threadで自動的に実行され、GUIへのすべての更新はEDTで実行されます。
How to Use TimersのSwingチュートリアルのセクションを読んでください。
14
このソリューションはoxbow_lakes 'に基づいていますが、このタイプのものを対象としたjavax.swing.Timerを使用しています。常にイベントディスパッチスレッド上でそのコードを実行します。これは微妙だが厄介なバグを避けるために重要です。
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Test {
public static void main(String[] args) {
JFrame f = new JFrame();
final JDialog dialog = new JDialog(f, "Test", true);
Timer timer = new Timer(2000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
dialog.dispose();
}
});
timer.setRepeats(false);
timer.start();
dialog.setVisible(true); // if modal, application will pause here
System.out.println("Dialog closed");
}
}
関連する問題
- 1. JDialogボックスのみを閉じることはできますか?
- 2. Java JDialogで別のウィンドウを閉じる
- 3. jtextfieldはjdialogを閉じた後にjdialogの値を保持します
- 4. 数秒後に自分のSwingウィンドウが閉じたままになるのはなぜですか?
- 5. Java SwingタイマーとActionEvent
- 6. タイマーとアプリケーションを閉じる
- 7. Swing JDialogボックス自体が表示されますか?
- 8. JDialogを閉じるときにWindowEventが表示されない
- 9. 別のウィンドウを閉じるJDialog
- 10. [x]秒後にDelphiダイアログを閉じる
- 11. 3秒後にボタンを閉じるjavafx
- 12. 3秒後にSSHセッションを閉じる
- 13. 3秒後にポップアップウィンドウを閉じる
- 14. Javaスクリプトのデュアルモーダルを閉じることができません
- 15. GraphStreamを閉じるときにSwingメインアプリケーションを閉じないでください
- 16. 複数のGoroutinesを閉じることができますか?
- 17. Java&Swing - 2つのJDialogを同時にポップアップ表示できますか?
- 18. 閉じる(0)の後にstdinを開くことができますか?
- 19. Swing:コントローラからJDialogをプログラムで閉じるにはどうすればいいですか?
- 20. Javascript自動閉じるポップアップウィンドウ10秒後
- 21. 閉じるJDialogオブジェクトからJframeオブジェクトを呼び出す
- 22. onResume()の後にAlertDialogを閉じることができません
- 23. 閉じることができるJavaラベル
- 24. どのようにリアルタイムで秒数秒でタイマーを停止できますか?
- 25. Java JFrameはすべてのフレームを閉じることができません
- 26. DataInputStreamとDataOutputStreamをJavaで閉じることができません
- 27. eclipseでファイルを閉じることができません
- 28. アプリケーション終了後にUWPバックグラウンドタスクを閉じることができません
- 29. シートセグメンテーション後にOSX Cocoaアプリを閉じることができません
- 30. Java、Swing - JFrameに線を描くことができません
イベントディスパッチスレッドでdialog.setVisisble(false)を呼び出す必要があります。それ以外の場合、コードの動作は予測できません。 –
これは非常に真実です - 混乱の理由からこれを省略しました –