gpt4 book ai didi

java - 按边缘排列 Swing 组件

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:34:41 27 4
gpt4 key购买 nike

是否可以排列 Swing 组件?这些组件位于单独的面板中,它们都使用流式布局。这两个面板位于另一个使用网格布局的面板中。

image

如您所见,存在细微差别,我觉得这很烦人。我知道所有的 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);

最佳答案

AFAIU 这可以使用 GroupLayout 来实现.此布局需要 5 个水平组和 2 个垂直组。

GroupLayout vertical & horizontal groups

参见 How to Use GroupLayout例如(包括对该图像的讨论)。

另见 this answer对于 MCVE。

关于java - 按边缘排列 Swing 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13301374/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com