0

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

我究竟做错了什么?

PS这就是为什么我更喜欢该死的空布局...

4

1 回答 1

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);
        }});
    }
}
于 2012-08-26T23:02:01.790 回答