我不熟悉使用UI我目前正在处理一个项目,其中我需要一个工作的GUI进行测试我试图创建一个 JFrame ,其中包含2个 JPanel 容器,每个占据屏幕的一半到目前为止这个工作正常但是现在我希望添加 JTextPaneJButton ,但我希望文本窗格占据高度的90%,按钮占据10%(不完全是这些值,但我可以控制它)我的代码列在下面框架类:

public class Frame extends JFrame {
private static final long serialVersionUID = 1L;
Start_ s = new Start_();
Pane p = new Pane();

public static void main(String[] args0) {
    new Frame();
}

public Frame() {
    setLayout(new GridLayout(1, 0));
    setSize(Toolkit.getDefaultToolkit().getScreenSize().width, Toolkit.getDefaultToolkit().getScreenSize().height);
    add(p);
    add(s);
    setUndecorated(true);
    pack();
    setVisible(true);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}

空白面板:

public class Pane extends JPanel {
    private static final long serialVersionUID = 1L;

    public Pane() {
        setSize(new Dimension(Toolkit.getDefaultToolkit().getScreenSize().width / 2,
                Toolkit.getDefaultToolkit().getScreenSize().height));
        setBackground(Color.black);
    }
}

带文本窗格的面板(注意我使用流布局主要是因为我不熟悉布局及其用法):

public class Start_ extends JPanel {
    private static final long serialVersionUID = 1L;
    JTextPane JTP = new JTextPane();
    private JButton b = new JButton("Submit Code");

    public Start_() {
        setLayout(new FlowLayout());
        b.setPreferredSize(new Dimension(Toolkit.getDefaultToolkit().getScreenSize().width / 2,Toolkit.getDefaultToolkit().getScreenSize().height / 20));
        setPreferredSize(new Dimension(Toolkit.getDefaultToolkit().getScreenSize().width / 2, Toolkit.getDefaultToolkit().getScreenSize().height));
        add(b);
        add(new JScrollPane(JTP));
        JTP.setBackground(Color.black);
        JTP.setPreferredSize(new Dimension(Toolkit.getDefaultToolkit().getScreenSize().width / 2, Toolkit.getDefaultToolkit().getScreenSize().height));
    }
}

我尝试了几种不同类型的布局我真的不能让他们中的任何一种工作到我的理解需要 GridBagLayout 但是我无法创建这个的工作版本并且在这里搜索时我无能为力如果有人能提供帮助,我会为我的案例找到有用的答案,我将不胜感激!