Java 使用JPanels的GridBagLayout

Java 使用JPanels的GridBagLayout,java,gridbaglayout,Java,Gridbaglayout,我已经找了几个小时了,但仍然找不到我需要的答案 所以我试着建立一个简单的布局,我想要的只是一个GridBagLayout 其中包含两个JPanel。构建布局应如图所示 下面 我使用BoxLayout获得它 import java.awt.Color; public class ProportionalPanels extends JFrame { private JPanel contentPane; /** * Create the frame. */ public Proport

我已经找了几个小时了,但仍然找不到我需要的答案

所以我试着建立一个简单的布局,我想要的只是一个GridBagLayout 其中包含两个JPanel。构建布局应如图所示 下面


我使用BoxLayout获得它

import java.awt.Color;


public class ProportionalPanels extends JFrame {

private JPanel contentPane;

/**
 * Create the frame.
 */
public ProportionalPanels() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 450, 300);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(0, 0, 0, 0));
    setContentPane(contentPane);
    contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.X_AXIS));

    final JPanel panel_A = new JPanel();
    panel_A.setBackground(new Color(255, 165, 0));
    contentPane.add(panel_A);

    final JPanel panel_B = new JPanel();
    panel_B.setBackground(new Color(176, 196, 222));
    contentPane.add(panel_B);

    panel_A.setMinimumSize(new Dimension(0, 0));
    panel_B.setMinimumSize(new Dimension(0, 0));

    panel_A.setPreferredSize(new Dimension(0, 0));
    panel_B.setPreferredSize(new Dimension(0, 0));

    panel_A.setMaximumSize(new Dimension(Short.MAX_VALUE / 5, Short.MAX_VALUE));
    panel_B.setMaximumSize(new Dimension(Short.MAX_VALUE, Short.MAX_VALUE));

    addComponentListener(new ComponentAdapter() {
        @Override
        public void componentResized(ComponentEvent e) {
            System.out.printf("Panel width rate: %.2f %n",
                    panel_B.getSize().width / (double) panel_A.getSize().width);
        }
    });
}

/**
 * Launch the application.
 */
public static void main(String[] args) {
    ProportionalPanels frame = new ProportionalPanels();
    frame.setVisible(true);
}

}

你试过什么吗?很可能没有人会在这里为你的作品编码。答案是什么?你怎么回事啊?你被困在哪里?你需要的一切都在这里解释了,在经过数小时的调查后,你肯定已经读过的第一个地方。现在,什么还不清楚?网格袋布局可以解决这个问题,左侧面板的gridx=0,右侧面板的gridx=1。您可以使用GridBagConstraints的weightx字段获得不同的大小。正如@Zavior所说,去试试这个,然后发布你的明确问题/你被困在哪里,我很乐意提供更多帮助。对不起,我完全忘了添加我的代码:但我真的很为用户感到高兴,这是一个好消息!多谢各位。这是一个很棒的社区!!!:非常感谢。你们真是太棒了:若它真的有帮助的话,你们也可以把这个答案标记为有用的