JDialog のダイアログウィンドウを setVisible(true) としてもウィンドウサイズが思ったように設定されないので調べてみた。


どうやら pack() を呼び出してやらないと適切なウィンドウサイズで表示されないらしい。

Window (Java 2 Platform SE 5.0):

サブコンポーネントの推奨サイズおよびレイアウトに合わせて、この Window をサイズ変更します。 ウィンドウおよびそのオーナがまだ表示可能でない場合は、両方とも表示可能にしてから推奨サイズを計算します。 preferredSize が計算されたあとに、Window は検査を受けます。

ダイアログウィンドウの可視化アクションは以下のようなコードが適切ということで一件落着。

dialog.pack();
dialog.setLocationRelativetoTo(frame); // ダイアログウィンドウ位置の設定
dialog.setVisible(true);

JAVA2D(1.3)に関するまとめページ に「pack()とsetVisible()の違い」「setVisible()とshow()の違い」が書いてあって参考になりました。


最終更新日: 2015年05月16日(土)


Back to top