布局和定位

时间:2012-08-26 22:42:59

标签: java layout jpanel jlabel layout-manager

我有一个带有BoxLayout.PAGE_AXIS的JPanel,但是当我向它添加两个JLabel时,第一个填充整个JPanel。 JPanel的PreferredSize是高度10.两个JLabel都有首选高度5,所有三个都宽度相同。

我做错了什么?

P.S。这就是为什么我会冒这个怪异的布局......

1 个答案:

答案 0 :(得分:0)

试试这段代码,它应该可以正常工作:

import java.awt.Dimension;

import javax.swing.*;

public class Test extends JFrame{
    JPanel panel = new JPanel();
    JLabel lbl1 = new JLabel("First");
    JLabel lbl2 = new JLabel("Second");

    public Test(){
        super("BoxLayout Test");
        panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS));
        panel.setPreferredSize(new Dimension(300,200));
        panel.add(lbl1);
        panel.add(lbl2);
        add(panel);

    }
    public static void main(String [] args){
        SwingUtilities.invokeLater(new Runnable(){
            public void run() {
                Test t = new Test();
                t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                t.pack();
                t.setVisible(true);
        }});
    }
}