如:
label  label     label      label   label
label  checkbox  textfield  button  checkbox如果用GridLayout,则组件将被拉大到网格大小,不能保持原始大小。
求助阿!

解决方案 »

  1.   

    用SpringLayout,示例代码如下public class Dlg extends JDialog { private JPanel content;
    public NWProcNewAppDlg(){
    super();
    setTitle("Spring Layout");
    initGUI();
    }

    private void initGUI(){
    SpringLayout layout = new SpringLayout();
    content = new JPanel(layout);
    JLabel label1 = new JLabel("上班");
    JLabel label2 = new JLabel("上学");
    content.add(label1);
    content.add(label2);

    JCheckBox cBox = new JCheckBox("回家");
    JTextField text = new JTextField("做饭");
    content.add(cBox);
    content.add(text);

    layout.putConstraint(SpringLayout.WEST,label1,5,SpringLayout.WEST,content);
    layout.putConstraint(SpringLayout.NORTH,label1,5,SpringLayout.NORTH,content);

    layout.putConstraint(SpringLayout.WEST,label2,80,SpringLayout.WEST,content);
    layout.putConstraint(SpringLayout.NORTH,label2,5,SpringLayout.NORTH,content);

    layout.putConstraint(SpringLayout.WEST,cBox,5,SpringLayout.WEST,content);
    layout.putConstraint(SpringLayout.NORTH,cBox,20,SpringLayout.NORTH,content);

    layout.putConstraint(SpringLayout.WEST,text,80,SpringLayout.WEST,content);
    layout.putConstraint(SpringLayout.NORTH,text,20,SpringLayout.NORTH,content);

    this.setContentPane(content);
    setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
    setVisible(true);
    }

    public static void main(String[] args){
    Dlg dlg = new Dlg();
    dlg.initGUI();
    }
    }
      

  2.   

    建议楼主看看jgoodies form包。
    不过入门可能会复杂点。
      

  3.   

    使用GridBagLayout 布局管理器.
    如果你要设计复杂的用户界面,用IDE工具好一点.
      

  4.   

    如果一般用bagLayout或者GridBagLayout,但是这么做没意义,如果要做复杂的界面直接使用JB或者netbeans,除非应付考试,你非得学一下,java的重点根本不在gui部分,而且java的gui在win下运行起来巨慢!
      

  5.   

    呵呵,楼上朋友,你说的JB和netbeans,包括eclipse都是用“在win下运行起来巨慢”的纯java开发的。
    不要人云亦云。