有人可以告诉我为什么我的 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);
}
}
最佳答案
这是BorderLayout
的基本功能。只有 CENTER
位置会自动调整大小。任何边框组件可以更改大小的唯一方法是,它们实际上更改大小(getPreferredSize
在执行下一个布局之前更改)
关于java - 请帮助我使用 Java 中的 JFrame 和 BorderLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15777806/