java - 请帮助我使用 Java 中的 JFrame 和 BorderLayout

标签 java swing jframe layout-manager jlist

有人可以告诉我为什么我的 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/

相关文章:

Java - 如何判断对象的类?

java - 如何完全驱逐Spark中的持久 "Stream Blocks"

java - 设置和检索从mysql到java的自动增量值(在jlabel中设置)

Java - 如何避免用未修饰的或自定义的 LookAndFeel 窗口覆盖任务栏?

java - JPanel:在创建时自动绘制?

JAVA。 JFrame 中的背景图像、drawString、JButton 和 JComboBox

java - 如何让背景框的JtextField成为焦点?

java - gson.fromJson StackOverFlowError

java - 处理 TableCellRenderer 上的整行

java - 如何读取txt文件的特定行并显示到JTable