web-dev-qa-db-ja.com

JFrameとJDialogの違いは何ですか?

JFrameJDialogの違いは何ですか?

JDialogにsetDefaultCloseOperation(JDialog.EXIT_ON_CLOSE);を使用できないのはなぜですか?

27
Mahdi_Nine

JFrameは、通常のボタン(オプション)と装飾を備えた通常のウィンドウです。反対側のJDialogには最大化ボタンと最小化ボタンがなく、通常はJOptionPane静的メソッドで作成され、モーダルにするのに適しています(他のコンポーネントが閉じられるまでブロックされます)。 。

ただし、どちらもWindowを継承しているため、多くの機能を共有しています。

26
fortran

JDialogsetDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);を使用できないのはなぜですか?

できますよ。

この値を使用するときに発生している問題を示す [〜#〜] sscce [〜#〜] を投稿します。

ただし、JDialogJDialogで表されるアプリケーションの「子」または「ヘルパー」ウィンドウであるため、JFrameEXIT_ON_CLOSEを使用することはできません。ダイアログを閉じてもアプリケーションは閉じません。

5
camickr

JDialogowner、またはFrameDialogパラメータを持つWindowコンストラクタがいくつかあります。 null以外の値を指定すると、JDialogは所有者の上に留まります。これは、Fortranによって記述されたモーダル動作を補完します。

1

setModal(boolean t);も使用できます。これはJDialogでのみ機能します。ユーザーは他のウィンドウではなくJDialogを操作する必要があります。オーナーウィンドウを操作する場合は、これをシャットダウンする必要がありますJDialog

0
Ryan