JPanel BoxLayout allignment非常糟糕

时间:2018-03-07 01:19:00

标签: java spring jpanel

我只是想制作一个带有两个标签的JPanel。第一个应位于屏幕的中心,另一个应位于面板的左侧。不幸的是,这根本不会发生。

以下是代码:

class Panel extends JPanel {
    public Panel() {
        setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));

        JLabel title = new JLabel("Label 1");
        title.setAlignmentX(CENTER_ALIGNMENT);
        add(title);



        //This following three lines can be commented out for different behaviour
        JLabel source = new JLabel("Label 2");
        source.setAlignmentX(LEFT_ALIGNMENT);
        add(source);

        setAlignmentX(CENTER_ALIGNMENT);
       }
}

因此,如果我们注释掉3行,谈论源“标签1”确实出现在屏幕的中心。

然而,如果我们将它们添加回来,那么一切都会变得不稳定。标签1不再居中,标签2实际上位于标签1的右侧。

这里发生了什么?

其他失败的尝试:

    setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));

    Box box = Box.createVerticalBox();

    JLabel title = new JLabel("TITLE:");
    title.setAlignmentX(Component.CENTER_ALIGNMENT);
    box.add(title);

    JLabel title2 = new JLabel("TITLE2:");
    title2.setAlignmentX(Component.LEFT_ALIGNMENT);
    box.add(title2);

    add(box, BorderLayout.NORTH);

0 个答案:

没有答案