2011-09-14 13 views
1

私はnetbeansヘルプなしでハードウェアコーディングjava guiアプリケーションに取り組んでいます。私は私のGUIのボックスレイアウトを使用しています。私の質問は、私がオンラインboxlayoutは、互いの上に要素を積み重ねる必要があります参照してくださいから簡単です。しかし、私はテキストエリア(x、y)トグルボタンと別のテキストエリア(x、y)を表示すると、最初のテキストエリアとトグルボタンの間にギャップがあり、トグルボタンと2番目のテキストエリアの間にはギャップがあります。なぜ彼らは積み重なっていないのですか? ありがとう、java gui boxlayoutの質問

+3

あなたはあなたの問題を示し、非常に小さなコンパイルおよび実行可能なプログラムを掲載したい場合があり、[sscce](http://sscce.org)。あなたと私たちの両方にとって非常に役立つので、リンクをチェックしてください。また、BoxLayoutコンストラクタ呼び出しの2番目のパラメータとして 'BoxLayout.PAGE_AXIS'を使用していますか?運! –

+0

私はBoxLayout.Y_AXISを使用しています。 – user541597

+0

BoxLayout.Y_AXISはBoxLayout.PAGE_AXISと同じですが、これは問題ではないと思います。ここでも、SSCCEを推奨します。たとえば、次のようにします。 –

答えて

2

次は、問題を示すSSCCEの例です。おそらく、あなたは何が起こっているか、私たちを表示するように変更することができます

import java.awt.*; 
import javax.swing.*; 

public class BoxLayoutEg { 
    public static void main(String[] args) { 
     JTextArea area1 = new JTextArea(10, 20); 
     JToggleButton toggleBtn = new JToggleButton("Foo"); 
     JTextArea area2 = new JTextArea(10, 20); 

     JPanel toggleBtnPanel = new JPanel(); 
     toggleBtnPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 0)); 
     // toggleBtnPanel.setLayout(new GridLayout()); 
     toggleBtnPanel.add(toggleBtn); 

     JPanel mainJPanel = new JPanel(); 
     mainJPanel.setLayout(new BoxLayout(mainJPanel, BoxLayout.PAGE_AXIS)); 

     mainJPanel.add(new JScrollPane(area1)); 
     mainJPanel.add(toggleBtnPanel); 
     mainJPanel.add(new JScrollPane(area2)); 

     JOptionPane.showMessageDialog(null, mainJPanel); 

    } 
}