ダイアログの上部にパネルをレイアウトして、2 つのボタン (保存とキャンセル) を持つようにする必要があります。
保存を左側に、キャンセルを右側に配置したい。
MigLayout を使用して JPanel を作成し、それをコンテンツ ペインの北にドッキングしましたが、2 つのボタンを希望どおりに表示するように追加する方法がわかりません。それらをパネル内にドッキングすると、ダイアログ内のすべてのパディングが取り除かれるようです (これはひどく見えます)。
どんな助けでも大歓迎です。
余談ですが、左または右のどちらのボタンを指定するべきではありません。これは、MiGLayoutの優れた点の1つです(キャンセルボタンをどこに配置するかなどでも、プラットフォームに依存しません)。
p.add(cancelButton, "tag cancel");
p.add(okButton, "tag ok");
これで、プラットフォームに基づいて、ボタンが正しい順序で表示されます。
これがあなたがやろうとしていることを実行するコードの記事です。ボタンなどのコンポーネントのサイズを強制しようとしないことを強くお勧めします(これらは実際にはプラットフォームのルックアンドフィールに由来する必要があります)。また、ドッキングが理にかなっている場合は問題ありませんが、必要になることはめったにありません。ボタン用に完全に別個のパネルを作成する代わりに、ボタンを含む行にまたがるだけで、はるかにクリーンになり、ネストされたパネルのすべてに行き着くわけではありません。
ネストされたパネルの境界線レイアウト手法から抜け出すのは難しいですが、一度コツをつかめば、MigLayoutは夢です。ところで-ライブラリにボタンパネルを構築したい場合があることを理解しています-その場合は、別々のパネルが理にかなっているかもしれません(ただし、ライブラリに既存のパネルにボタン行を追加させることもできますが、パネルを返す代わりに、レイアウトに追加します)。
ええ、質問するとすぐに答えが飛び出します。
JPanel buttonPanel = new JPanel(new MigLayout("fill","[50][50]",""));
buttonPanel.add(saveChangesButton);
buttonPanel.add(cancelButton, "align right");
getContentPane().add(buttonPanel, "dock north");
コンテンツ ペインも MigLayout を使用していることに注意してください。