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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |