web-dev-qa-db-ja.com

boxLayoutの2つのボタンの間にスペースを追加するにはどうすればよいですか?

BoxLayoutグループに4つのボタンがあります。これはすべて繰り返されるコードであるため、単なる2つのサンプルです。各ボタンが互いにぶつからないように、各ボタンの間にわずかなスペースを作成します。 .add(Box.Create....)のすべてのメソッドを実際に試しましたが、何も機能しませんでした。

    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());
42
Susie

コンポーネント間にスペースを置きたい場合は、片方または両方のコンポーネントに空の境界線を追加するか、不可視のコンポーネントを挿入してスペースを確保します。 Boxクラスを使用して、非表示のコンポーネントを作成できます。

あなたはすでに成功せずに接着剤を使用したので(なぜだろうか?)、Rigid areaなど

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

フィラーとして不可視コンポーネントを使用する をご覧ください。多くのオプションと説明があります。


追加情報、から コンポーネント間のスペースの挿入

コンテナ内の可視コンポーネント間のスペースの量には、次の3つの要因が影響します。

  • レイアウトマネージャー

    一部のレイアウトマネージャーは、コンポーネント間にスペースを自動的に配置します。他の人はしません。コンポーネント間のスペースの量を指定できるものもあります。間隔のサポートについては、各レイアウトマネージャーのハウツーページを参照してください。

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

    ペイントを実行しない軽量コンポーネントを作成できますが、GUIのスペースを占有する可能性があります。多くの場合、BoxLayoutで制御されるコンテナで非表示コンポーネントを使用します。非表示コンポーネントの使用例については、 BoxLayoutの使用方法 を参照してください。

  • 空の境界線

    レイアウトマネージャーが何であっても、コンポーネントに空の境界線を追加することにより、コンポーネント間の見かけ上のスペースに影響を与えることができます。空の境界線の最適な候補は、パネルやラベルなど、通常デフォルトの境界線を持たないコンポーネントです。他のコンポーネントの中には、ペイントコードの実装方法が原因で、一部のルックアンドフィール実装の境界線でうまく機能しないものがあります。境界線の詳細については、 境界線の使用方法 を参照してください。

76
COD3BOY