Я использовал GridBagLayout
, но недавно переключился на GroupLayout
.Ниже скриншот того, что у меня есть и что мне нужно.Тогда код.
Что мне нужно изменить?
Что у меня есть
Что мне нужно
Я думаю, что я должен использовать константы TRAILING
и LEADING
, но графический интерфейс не отвечает.Может ли это быть причиной, по которой большинство ТАК советуют людям избегать 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();
}
}