Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GroupLayout-组件对齐_Java_Swing_Alignment_Layout Manager_Grouplayout - Fatal编程技术网

Java GroupLayout-组件对齐

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中组件的对齐有一些问题。 我想做一个计算器类型的布局,顶部有2个文本字段,在6个按钮的正下方,按2列3行排列,结果有一个文本字段,但标签与文本字段不对齐,按钮也一样。如果你能给我一些建议,我将不胜感激。非常感谢。 代码如下:


我的主要建议是避免使用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
    }
}