将JLabel定位在JPanel上

时间:2013-11-20 21:22:04

标签: java swing jlabel

public class Test extends JFrame {
    JPanel panel = new JPanel();
    JLabel label = new JLabel("g");
    JLabel label2 = new JLabel("w");

    public Test(){
        this.setVisible(true);
        this.add(panel, BorderLayout.SOUTH));
        this.setSize(200,200);
        panel.add(label, new FlowLayout(FlowLayout.RIGHT);
        panel.add(label2, new FlowLayout(FlowLayout.LEFT);
    }
}

我认为这会将标签放在label2的右边,但不会如何进行呢?

1 个答案:

答案 0 :(得分:0)

下一个panel.add(label, new FlowLayout(FlowLayout.RIGHT));中的问题是错误构造,您的JPanel默认为FlowLayout,并且您从左到右或从右到左逐个添加组件。因此,添加下一个标签:

 panel.add(label2);
 panel.add(label);

此外:

setVisible(true);的构建结束时致电JFrame

使用pack()方法代替setSize(200,200);

阅读LayoutManagersFlowLayout.

的教程