我有一个带有 BoxLayout.PAGE_AXIS 的 JPanel,但是当我向其中添加两个 JLabel 时,第一个会填充整个 JPanel。JPanel 的 PreferredSize 高度为 10。两个 JLabel 的首选高度为 5,并且所有三个的宽度都相同。
我究竟做错了什么?
PS这就是为什么我更喜欢该死的空布局...
我有一个带有 BoxLayout.PAGE_AXIS 的 JPanel,但是当我向其中添加两个 JLabel 时,第一个会填充整个 JPanel。JPanel 的 PreferredSize 高度为 10。两个 JLabel 的首选高度为 5,并且所有三个的宽度都相同。
我究竟做错了什么?
PS这就是为什么我更喜欢该死的空布局...
试试这段代码,它应该可以正常工作:
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);
}});
}
}