如何垂直对齐JLabel-JTextField对

sky*_*ork 10 java user-interface swing alignment

我所说的JLabel-JTextField对是一个JLabel组件,后跟一个JTextField组件,例如"参数1:-----",其中"-----"表示空白的JTextField.

问题是,由于参数名称的长度不同,JLabel的宽度会有所不同,因此JTextField的起点不会垂直对齐.

有没有办法将JLabel垂直对齐到右边,以便后面的JTextField的开头会对齐?谢谢.

MBy*_*ByD 6

您没有指定使用哪种布局,因此实现GridBagLayout的良好布局.oracle网站上演示非常棒.

还有一个简短的例子:

JPanel panel = new JPanel();
panel.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 0;
panel.add(new JLabel("Label 1:"), c);
c.gridx = 1;
c.gridy = 0;
panel.add(new JTextField("TextField 1"), c);
c.gridx = 0;
c.gridy = 1;
panel.add(new JLabel("Label 2:"), c);
c.gridx = 1;
c.gridy = 1;
panel.add(new JTextField("TextField 2"), c);
Run Code Online (Sandbox Code Playgroud)

  • +1,但是当GUI调整大小时,他们很快就会抱怨组件在中间聚集.不要忘记重量和重量.:) (2认同)

And*_*son 6

有没有办法将JLabel垂直对齐到右边,以便后面的JTextField的开头会对齐?

1.6 + , GroupLayout. 来自JavaDocs的EG:

在此输入图像描述

使用将文本推送到RHS的标签对齐方式.


另请参阅MCVE的答案.