我想在JPanel中竖排10个JCheckBox,请问用哪种Layout???我用FlowLayout,好像只能按顺利横排,排满了一行才排下一行。我想要它们按顺利竖排。如何实现。感谢。

解决方案 »

  1.   

    import javax.swing.*;
    import java.awt.*;public class Test extends JFrame {
      private JPanel pane = null;
      
      public Test(){
        super("GridLayout");
        pane = new JPanel();
        pane.setLayout(new GridLayout(5, 1)); //5行1列
        pane.add(new JCheckBox("aaaaa"));
        pane.add(new JCheckBox("bbbbb"));
        pane.add(new JCheckBox("ccccc"));
        pane.add(new JCheckBox("ddddd"));
        pane.add(new JCheckBox("eeeee"));
        
        this.getContentPane().add(pane);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setSize(300, 500);
        this.setVisible(true);
      }  public static void main(String[] args) {
        Test test = new Test();
      }
    }
      

  2.   

    用BoxLayout:Box b=Box.createVerticalBox();
    b.add(chexkBox1);
    b.add(Box.createVerticalStruct(10));//可选,10表示检举大小
    b.add(chexkBox2);....
      

  3.   

    最后别忘了把b加到你想加的地方。Box还提供一些方法设置是居中还是左对齐右对齐