2011-12-01 16 views
36

BoxLayoutグループに4つのボタンがあります。これはすべての繰り返しコードなので、2つのサンプルです。私はそれぞれのボタンの間にわずかなスペースを作り、お互いに繋がっていないようにしたい。私は実際に.add(Box.Create....)のすべてのメソッドを試してみましたが、何も働いていませんでした。ボックス内の2つのボタンの間にスペースを追加するにはどうすればいいですか?

enter.add(Box.createVerticalGlue()); 
    enter.add(Box.createHorizontalGlue()); 
    //enter.add(new JSeparator(SwingConstants.HORIZONTAL)); 
    JButton float = new JButton("LOWER"); 
    float.add(Box.createVerticalGlue()); 
    float.add(Box.createHorizontalGlue()); 
+0

ああ!私はあなたがそれをすることができるとは気付かなかった。 – Susie

+1

喜んで助けてください。また、「正しい」と表示される回答があるかどうかを確認するために、[以前の質問](http://stackoverflow.com/users/998505/susie?tab=questions)を参照してください。 –

答えて

71

コンポーネント間にスペースを入れたい場合は、空白の境界線を一方または両方のコンポーネントに追加するか、不可視コンポーネントを挿入してスペースを確保します。 Boxクラスの助けを借りて、目に見えないコンポーネントを作成することができます。

あなたは既にいない成功(私はなぜ?疑う)との接着剤を使用するので、あなたはリジッドエリアような何かを試すことが、

container.add(firstComponent); 
container.add(Box.createRigidArea(new Dimension(5,0))); 
container.add(secondComponent); 

はあなたのオプションや説明の多くを与えUsing Invisible Components as Fillerを見てください。 Putting Space Between Componentsから


追加情報、

3つの要因が、容器内に可視のコンポーネント間のスペースの量に影響を与える:

  • レイアウトマネージャ

    一部レイアウトマネージャをコンポーネント間に自動的にスペースを入れます。他の人はそうしない。いくつかは、コンポーネント間のスペース量を指定するものです。スペーシングのサポートについては、各レイアウトマネージャのハウツーページを参照してください。

  • 目に見えないコンポーネント

    あなたは何の絵を行わない軽量コンポーネントを作成することができますが、それはGUIでスペースを取ることができます。多くの場合、BoxLayoutによって制御されるコンテナで不可視コンポーネントを使用します。不可視コンポーネントの使用例については、How to Use BoxLayoutを参照してください。

  • 空の境界

    は何があってレイアウトマネージャは、コンポーネントに空の境界線を追加することにより、コンポーネント間のスペースの見かけの量に影響を与えることはできません。空の枠線の最適な候補は、パネルやラベルなど、通常はデフォルトの枠線を持たないコンポーネントです。一部の他のコンポーネントは、ペイントコードが実装されているため、一部のルックアンドフィールの実装では境界線でうまく動作しない場合があります。罫線の詳細については、How to Use Bordersを参照してください。

+0

偉大な答え、非常に包括的な。 +1 –

+0

ありがとうございます - この情報は本当に役に立ちました! – Susie

関連する問題