1

私は動的な JDialogs を構築しています。JPanel がいくつかあります。メニュー オプションを選択すると、モーダル JDialog が作成され、JPanel が追加されて表示されます。

JDialog dlg = new JDialog(this, title, true);
dlg.getContentPane().add(panel);
dlg.pack();
dlg.setLocationRelativeTo(null);
dlg.setVisible(true);

アプリは正常に動作していますが、JDialog の境界線と追加されたパネルの間にスペースがなく、非常に「いっぱい/引き伸ばされた」ように見えます (申し訳ありませんが、これを言う方法がわかりません)。おそらく問題は、私が JDialog.pack() を呼び出していることですが、実行時にパネルのサイズがわからないため、寸法なしで JDialog を作成し、コンテンツを追加した後にパックします。

私の質問は、パネルの周りにスペースを追加するにはどうすればよいですか?

考えられる解決策の 1 つは、BorderLayout を追加し、パネルを中央に配置し、4 つの固定サイズのパネルを両側に配置することです...しかし、これは醜いハックのようです...

4

1 に答える 1

6

パネルに空の境界線を追加するだけです:

panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
于 2013-07-30T21:43:52.527 に答える