0

有人能告诉我为什么我的 JList 和 JLabel 不会自动调整大小以填满整个屏幕吗?还有为什么 JButton 不自动调整大小?万分感谢

public class testing extends JFrame {

    private String[] testArray = {"apple", "banana", "cat"};
    private JPanel firstLayer = new JPanel();
    private JPanel secondLayerLeft = new JPanel();
    private JPanel secondLayerRight = new JPanel();
    private JList<String> leftText = new JList<String>();
    private JLabel rightOutput = new JLabel();
    private JButton button = new JButton("test button");

    public testing(){
        firstLayer.setLayout(new BorderLayout());
        firstLayer.add(secondLayerLeft, BorderLayout.WEST);
        firstLayer.add(secondLayerRight, BorderLayout.EAST);
        firstLayer.add(button, BorderLayout.SOUTH);

        secondLayerLeft.add(leftText);
        leftText.setListData(testArray);
        secondLayerRight.add(rightOutput);
        rightOutput.setText("testing 12345");


        secondLayerLeft.setBorder(new EtchedBorder());
        secondLayerRight.setBorder(new EtchedBorder());

        this.add(firstLayer);
    }


    public static void main(String[] args) {
        testing gui = new testing();
        gui.setSize(700, 800);
        gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        gui.setVisible(true);
    }

}
4

2 回答 2

2

这是一个基本特征BorderLayout。只有CENTER位置会自动调整大小。任何边框组件可以更改大小的唯一方法是,它们实际上会更改大小(getPreferredSize在执行下一个布局之前更改)

于 2013-04-03T02:30:29.597 回答
1

您的左右面板的大小正好可以容纳它们所包含的 JPanel 的首选大小。你的按钮占据了边框布局的整个南部,就像它应该的那样,并且可以漂亮地调整大小。如果你想让某些东西伸展到整个窗口,把它放在中间。

于 2013-04-03T02:35:10.273 回答