2011-07-09 11 views
2

なぜ私はこの解決策を見つけることができないのかわかりません...私は、フローレイアウトでいくつかのAWTコンポーネントをレイアウトしようとしています。唯一の問題は、フローレイアウトを使用する場合、コンポーネント(パネル)間の「パディング」です。これはアプレットの現在の外観です:http://i.stack.imgur.com/2KZgD.png アプレット/パネルを設定して、2つのパネル(ブラックボックス)が接触している(パディングなし)ようにする必要があります。プログラム全体がSwingを無料で、すべてのAWTが、私はそれをそのまま維持する予定です。私はこれが非常に簡単な解決策だと感じますが、私は答えを見つけることができませんでした。 Java AWTコンポーネントとパネルのパディング/ボーダー

これは、アプレットクラスからのinit()コードである:

public void init() { 
    setLayout(new FlowLayout()); 
    c1 = new TestPanel(); 
    c2 = new TestPanel(); 
    c1.setPreferredSize(new Dimension(640, 480)); 
    c2.setPreferredSize(new Dimension(100, 480)); 
    add(c1); 
    add(c2); 
} 

これは私が使用しているテストパネルクラス:

public class TestPanel extends Panel { 
    public void paint(Graphics g) { 
    g.setColor(Color.BLACK); 
    g.fillRect(0, 0, this.getPreferredSize().width, this.getPreferredSize().height); 
    } 
} 

答えて

2

FlowLayoutのデフォルト水平(および垂直)ギャップ5に設定されています。したがって、を明示的にに設定すると、水平ギャップを0に設定する必要があります。

コンポーネントのレイアウト上の最初のアプローチ

呼び出しsetHgap(...)JPanelのデフォルトのレイアウトはFlowLayoutあるので、単純に次の操作を行います。

((FlowLayout)getLayout()).setHgap(0); 

第二のアプローチ

使っ別FlowLayoutコンストラクタ。つまり、FlowLayout(int align, int hgap, int vgap)です。次のようにしてください:

setLayout(new FlowLayout(FlowLayout.CENTER, 0, 5)); 
+0

ああ、ありがとう!それは完全にそれを解決する。 – Tanaki

+0

@たなき、ようこそ! :) – mre

関連する問題