有人能告诉我为什么我的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);
}
}
答案 0 :(得分:2)
这是BorderLayout
的基本功能。仅自动调整CENTER
位置的大小。任何边框组件可以改变大小的唯一方法是,实际上它们是否会改变大小(getPreferredSize
更改,然后再执行下一个布局)
答案 1 :(得分:1)
您的左右面板尺寸正确,可以容纳其中包含的JPanel的首选尺寸。您的按钮占据了边框布局的整个南部,就像它应该的那样,并且精美地调整大小。如果你想要将某些东西拉伸到整个窗口,请将它放在中心。