Java GroupLayout-组件对齐
我对groupLayout中组件的对齐有一些问题。 我想做一个计算器类型的布局,顶部有2个文本字段,在6个按钮的正下方,按2列3行排列,结果有一个文本字段,但标签与文本字段不对齐,按钮也一样。如果你能给我一些建议,我将不胜感激。非常感谢。 代码如下:Java GroupLayout-组件对齐,java,swing,alignment,layout-manager,grouplayout,Java,Swing,Alignment,Layout Manager,Grouplayout,我对groupLayout中组件的对齐有一些问题。 我想做一个计算器类型的布局,顶部有2个文本字段,在6个按钮的正下方,按2列3行排列,结果有一个文本字段,但标签与文本字段不对齐,按钮也一样。如果你能给我一些建议,我将不胜感激。非常感谢。 代码如下: 我的主要建议是避免使用GroupLayout手工编写Swing GUI代码。取而代之的是使用一种对编码人员更加友好的布局,包括嵌套的JPanel,每个JPanel使用一种简单的布局,或者如果您的需求更大,则使用第三方MIG布局。1)源代码中只需要
我的主要建议是避免使用GroupLayout手工编写Swing GUI代码。取而代之的是使用一种对编码人员更加友好的布局,包括嵌套的JPanel,每个JPanel使用一种简单的布局,或者如果您的需求更大,则使用第三方MIG布局。1)源代码中只需要一行空白。
{
之后或}
之前的空行通常也是多余的。2) 使用缩进代码行和代码块的逻辑和一致形式。缩进的目的是使代码的流程更易于遵循!3) 提供最小尺寸的ASCII艺术或GUI预期布局的简单绘图,如果可以调整大小,则具有更大的宽度和高度。4) 该代码既扩展了JFrame,又声明了一个实例。做一个或另一个,不要两个都做。谢谢你的回答!我会考虑他们的!1) 提示:添加@HovercraftFullOfEels(或任何人,@
很重要)以通知此人新的评论。3) 技术要点,但它们是评论,不是答案。
public class View extends JFrame{
JFrame frame = new JFrame("Example");
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel p3 = new JPanel();
JPanel p4 = new JPanel();
JTextField tf = new JTextField(15);
JTextField tf1 = new JTextField(15);
JButton b = new JButton(" + ");
JButton b1 = new JButton(" - ");
JTextField tf3 = new JTextField(15);
public View(){
frame.setLayout(new FlowLayout());
GroupLayout layout = new GroupLayout(p1);
p1.setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);
JLabel label = new JLabel("Polinom 1: ");
JLabel label1 = new JLabel("Polinom 2: ");
b.setSize(20,20);
b1.setSize(20,20);
b.setFont(new Font("Arial", Font.PLAIN, 50));
b1.setFont(new Font("Arial", Font.PLAIN, 50));
layout.setHorizontalGroup(
layout.createSequentialGroup()
.addComponent(label)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(tf)
.addComponent(b))
.addComponent(label1)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(tf1)
.addComponent(b1)
));
layout.setVerticalGroup(
layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(label)
.addComponent(tf)
.addComponent(label1))
.addComponent(tf1)
.addComponent(b)
.addComponent(b1)
);
frame.add(p1);
JLabel l = new JLabel("Rezultat: ");
p3.add(b);
frame.pack();
frame.setSize(500,400);
// frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}