それは二つのボタンを持つように、どのように私は私のダイアログの上部にあるパネルをレイアウトするのですか?

StackOverflow https://stackoverflow.com/questions/1058361

  •  21-08-2019
  •  | 
  •  

質問

私はそれは二つのボタン(保存して、キャンセルを)持っているように、私のダイアログの上にパネルを配置する必要があります。

私は左側にあり、右側にあることをキャンセルし、保存します。

私はMigLayoutを使用してのJPanelを作成し、コンテンツペインの北にそれをドッキングして、私の人生のために私はそれらをしたいと、彼らが表示されるように、それへの2つのボタンを追加する方法を見つけ出すことはできませんしました。パネル内でそれらをドッキングする(ひどい見えます)ダイアログ内のすべてのパディングを取り除くようです。

任意の助けいただければ幸いです。

役に立ちましたか?

解決

余談として、あなたはおそらく、左または右にあるボタン口述すべきではありません。それはMiGLayoutについてのクールなもの(でも、このようなキャンセルボタンが行くべき場所として、物事のプラットフォームに依存しない、)の方法の一つだ。

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を使用していることに注意してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top