有没有可能对齐Swing组件?
这些组件在单独的面板中,使用流式布局。这两个面板位于另一个使用网格布局的面板中。
如下图所示,存在微妙差别,让人感到不舒服。我知道所有的jlabels(蓝紫色的长方形)都具有相同的大小,所以我认为这可能是由于“+”和“*”,但我不确定,因为前两个框的左侧没有对齐。
这些是面板:
两个蓝色的矩形。
展示矩形大小相同
如下图所示,存在微妙差别,让人感到不舒服。我知道所有的jlabels(蓝紫色的长方形)都具有相同的大小,所以我认为这可能是由于“+”和“*”,但我不确定,因为前两个框的左侧没有对齐。
这些是面板:
JPanel panel2 = new JPanel(new GridLayout(4, 1));
JPanel panel2a = new JPanel(new FlowLayout());
JPanel panel2b = new JPanel(new FlowLayout());
第一和第二个矩形(紫色)
add1 = new JLabel("", JLabel.CENTER);
add1.setTransferHandler(new TransferHandler("text"));
add1.setBorder(b2);
add2 = new JLabel("", JLabel.CENTER);
add2.setTransferHandler(new TransferHandler("text"));
add2.setBorder(b2);
两个蓝色的矩形。
textFieldA = new JTextField();
textFieldA.setHorizontalAlignment(JTextField.CENTER);
textFieldA.setEditable(false);
textFieldA.setBorder(new LineBorder(Color.blue));
textFieldM = new JTextField();
textFieldM.setHorizontalAlignment(JTextField.CENTER);
textFieldM.setEditable(false);
textFieldM.setBorder(new LineBorder(Color.blue));
加号和星号
opA = new JLabel("+", JLabel.CENTER);
opS = new JLabel("*", JLabel.CENTER);
展示矩形大小相同
Dimension d = card1.getPreferredSize();
int width = d.width + 100;
int height = d.height + 50;
add1.setPreferredSize(new Dimension(width, height));
add2.setPreferredSize(new Dimension(width, height));
mult1.setPreferredSize(new Dimension(width, height));
mult2.setPreferredSize(new Dimension(width, height));
textFieldA.setPreferredSize(new Dimension(width, height));
textFieldM.setPreferredSize(new Dimension(width, height));
添加到面板中
panel2a.add(add1);
panel2a.add(opA);
panel2a.add(add2);
panel2a.add(enterA);
panel2a.add(textFieldA);
panel2c.add(mult1);
panel2c.add(opM);
panel2c.add(mult2);
panel2c.add(enterM);
panel2c.add(textFieldM);
panel2.add(panel2a);
panel2.add(panel2c);
GridBagLayout
。 - MadProgrammer