2012-01-25 8 views
0

私はしばらくしてからスイングに戻ってきます。 固定サイズのボタンをウィンドウの中央、中央に配置するにはどうすればよいですか? Borderlayout.southを使用すると、ボタンが広すぎます。私はそのトリックを覚えていませんJButtonウィンドウの下に

+0

BorderLayoutを使用するときに 'button.setPreferredSize(Dimension)'を呼び出してみましたか? – fireshadow52

答えて

3

これを処理する一般的に2つの方法があります。

  • ネスティング、すなわち、境界線レイアウトを持つパネルを作成します。フローレイアウトを持つ別のパネルを作成してボタンを追加します。
  • 最初のパネルの南に第二パネルを置くなどGridBagLayoutMiG Layout
+1

+1 JPanelはデフォルトでFlowLayoutを実装しています – mKorbel

+0

@mKorbel良い点。 –

2

など、より洗練されたレイアウトを使用しMigLayoutを使用して調べてください。それはSwingを使って信じられないほど便利です。

int buttonWidth = 100; 
    int buttonHeight = 50; 
    button.setPreferredSize(new Dimension(buttonWidth, buttonHeight)); 
    this.setLayout(new MigLayout("insets 0")); 
    this.add(button, "pos 50%-" + buttonWidth/2 + " 100%-" + buttonHeight); 

はMigLayoutとコアレイアウトマネージャともっと簡単な方法、あるいは簡単な方法があるかもしれませんが、それは私が最初にそれに近づくような方法だろう。

また、親パネルのサイズが変わるたびにヌルレイアウトとsetBoundsを使用することもできます。ほとんどのSwingプログラマーはnullレイアウトに対してアドバイスします。この場合、BoxLayoutを見ることができます。それはあなた次第ですが、私はMigLayoutが不可欠です。

+1

'ほとんどのSwingプログラマーがnullレイアウトに対してアドバイスします' == Swing GUIはAbsoluteLayout&ComponentListenerの使用には指定されていません。なぜ標準のLayoutManagersか今日のカスタムLayoutManagersには3番目に+1しますか?パーティーMigLayout – mKorbel

関連する問題