JFrame
とJDialog
の違いは何ですか?
JDialogにsetDefaultCloseOperation(JDialog.EXIT_ON_CLOSE);
を使用できないのはなぜですか?
JFrame
は、通常のボタン(オプション)と装飾を備えた通常のウィンドウです。反対側のJDialog
には最大化ボタンと最小化ボタンがなく、通常はJOptionPane
静的メソッドで作成され、モーダルにするのに適しています(他のコンポーネントが閉じられるまでブロックされます)。 。
ただし、どちらもWindowを継承しているため、多くの機能を共有しています。
JDialog
にsetDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);
を使用できないのはなぜですか?
できますよ。
この値を使用するときに発生している問題を示す [〜#〜] sscce [〜#〜] を投稿します。
ただし、JDialog
はJDialog
で表されるアプリケーションの「子」または「ヘルパー」ウィンドウであるため、JFrame
にEXIT_ON_CLOSE
を使用することはできません。ダイアログを閉じてもアプリケーションは閉じません。
JDialog
、owner
、またはFrame
のDialog
パラメータを持つWindow
コンストラクタがいくつかあります。 null以外の値を指定すると、JDialog
は所有者の上に留まります。これは、Fortranによって記述されたモーダル動作を補完します。
setModal(boolean t);
も使用できます。これはJDialog
でのみ機能します。ユーザーは他のウィンドウではなくJDialog
を操作する必要があります。オーナーウィンドウを操作する場合は、これをシャットダウンする必要がありますJDialog
。