GroupLayout-简单的组件定位

时间:2018-09-13 10:36:21

标签: java swing layout-manager grouplayout

我一直在使用GridBagLayout,但是最近转向GroupLayout。以下是我所拥有和需要的屏幕截图。然后是代码。

我需要更改什么?

我有什么

enter image description here

我需要什么

enter image description here

我认为我应该使用TRAILINGLEADING常量,但是GUI没有响应。这可能是大多数SO建议人们避免使用GroupLayout的原因吗?我以前使用过GridBagLayout,它更复杂,而GroupLayout的代码似乎更简单。这就是为什么要使用它。下面给出了我拥有的代码,我需要什么才能达到预期的效果?

public class GroupLayoutOne extends JFrame{

   JLabel lbText = new JLabel("Text one");
   JTextField txText = new JTextField();
   JLabel lbText2 = new JLabel("Text two");
   JTextField txText2 = new JTextField();
   JPanel pnCompo = new JPanel();

    public static void main(String[] args) {

        GroupLayoutOne glx = new GroupLayoutOne();
        glx.init();
        glx.setVisible(true);
        glx.setSize(new Dimension(400,200));
        glx.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

    void init(){
        GroupLayout gl = new GroupLayout(getContentPane());
        this.getContentPane().setLayout(gl);

        pnCompo.setPreferredSize(new Dimension(300,300));
        pnCompo.setBorder(BorderFactory.createTitledBorder("More Components"));
        gl.setHorizontalGroup(gl.createSequentialGroup()
                .addGroup(gl.createParallelGroup()
                        .addComponent(lbText)
                        .addComponent(lbText2)
                        .addComponent(pnCompo)
                 )
                 .addGroup(gl.createParallelGroup()
                        .addComponent(txText)
                        .addComponent(txText2)

                )
        );
        gl.setVerticalGroup(gl.createSequentialGroup()
                 .addGroup(gl.createParallelGroup()
                        .addComponent(lbText)
                        .addComponent(txText)

                 )
                 .addGroup(gl.createParallelGroup()
                        .addComponent(lbText2)
                        .addComponent(txText2)

                )
                .addComponent(pnCompo)
        );
        pack();
    }
 }

0 个答案:

没有答案
相关问题