加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 按边缘排列摇摆组件

发布时间:2020-12-15 04:59:12 所属栏目:Java 来源:网络整理
导读:是否可以排列摆动组件? 组件位于单独的面板中,两者都使用流动布局.这两个面板位于使用网格布局的另一个面板中. 你可以看到有一个微妙的区别,我觉得很烦人.我知道所有的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);

解决方法

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

有关示例,请参阅How to Use GroupLayout(包括对该图像的讨论).

有关MCVE,另请参见this answer.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读