组件对齐 java
Component alignment java
我正在 java 学习 GUI,我遇到了组件对齐问题。
我正在使用具有 3 个水平框的垂直框。
我想让拳头和第三个盒子在中间对齐,第二个盒子在左边对齐。
这是代码。
public class KopjoFushen extends JFrame
{
private JTextField text;
private JTextField text2;
public KopjoFushen()
{
super("Kopjo fushen");
JLabel label=new JLabel();
label.setText("Fusha1");
text =new JTextField(10);
Box siper=Box.createHorizontalBox();
siper.add(label);
siper.add(text);
text2 =new JTextField(60);
text2.setEditable(false);
text2.setText("Fusha e pandryshueshme");
Box mes=Box.createHorizontalBox();
mes.add(text2);
JButton buton=new JButton("Kopjo fushen e lire");
buton.addActionListener(new ButonHandler());
Box poshte=Box.createHorizontalBox();
poshte.add(buton);
Box total=Box.createVerticalBox();
total.add(siper);
siper.setAlignmentX(Component.CENTER_ALIGNMENT);
mes.setAlignmentX(Component.RIGHT_ALIGNMENT);
total.setAlignmentX(Component.CENTER_ALIGNMENT);
total.add(mes);
total.add(poshte);
setLayout(new FlowLayout());
add(total);
}
第一个问题是第一个框都左对齐。
第二个问题是,如果我在第二个 JTextField 的构造函数中使用更大的数字,第一个 JTextField 会变大。
这是我想要实现的目标
http://prntscr.com/e8utum
这是我所做的:http://prntscr.com/e8uusn
第一个Box实际上是居中的。它似乎向左对齐,因为它已调整大小以适应父面板。
事实上,如果您设置 JTextField maximumSize,您会注意到它居中
text.setMaximumSize(new Dimension(300, Integer.MAX_VALUE));
我正在 java 学习 GUI,我遇到了组件对齐问题。 我正在使用具有 3 个水平框的垂直框。 我想让拳头和第三个盒子在中间对齐,第二个盒子在左边对齐。 这是代码。
public class KopjoFushen extends JFrame
{
private JTextField text;
private JTextField text2;
public KopjoFushen()
{
super("Kopjo fushen");
JLabel label=new JLabel();
label.setText("Fusha1");
text =new JTextField(10);
Box siper=Box.createHorizontalBox();
siper.add(label);
siper.add(text);
text2 =new JTextField(60);
text2.setEditable(false);
text2.setText("Fusha e pandryshueshme");
Box mes=Box.createHorizontalBox();
mes.add(text2);
JButton buton=new JButton("Kopjo fushen e lire");
buton.addActionListener(new ButonHandler());
Box poshte=Box.createHorizontalBox();
poshte.add(buton);
Box total=Box.createVerticalBox();
total.add(siper);
siper.setAlignmentX(Component.CENTER_ALIGNMENT);
mes.setAlignmentX(Component.RIGHT_ALIGNMENT);
total.setAlignmentX(Component.CENTER_ALIGNMENT);
total.add(mes);
total.add(poshte);
setLayout(new FlowLayout());
add(total);
}
第一个问题是第一个框都左对齐。 第二个问题是,如果我在第二个 JTextField 的构造函数中使用更大的数字,第一个 JTextField 会变大。 这是我想要实现的目标 http://prntscr.com/e8utum 这是我所做的:http://prntscr.com/e8uusn
第一个Box实际上是居中的。它似乎向左对齐,因为它已调整大小以适应父面板。
事实上,如果您设置 JTextField maximumSize,您会注意到它居中
text.setMaximumSize(new Dimension(300, Integer.MAX_VALUE));