gpt4 book ai didi

java - 如何在Java中设置GridBagLayout的列宽

转载 作者:行者123 更新时间:2023-12-02 13:08:28 24 4
gpt4 key购买 nike

我想创建一个类似于附图的布局。它有 2 个面板。左侧面板的最小宽度为 500px,随着 JFrame 大小的调整而调整大小。右侧面板的固定宽度为 120px。它们之间有 10px 的填充。

我尝试了 GridBagLayout 但它似乎没有按预期工作。请帮忙。谢谢。

enter image description here

    JPanel leftBox;
JPanel rightBox;
JButton btnSave;
JButton btnRefresh;
JTextArea txtArea;

leftBox = new JPanel();
rightBox = new JPanel();

btnSave = new JButton("Save");
btnRefresh = new JButton("Refresh");

txtArea = new JTextArea();
txtArea.setFont(new Font("Consolas", Font.BOLD, 14));

leftBox.setLayout(new BoxLayout(leftBox, BoxLayout.Y_AXIS));
leftBox.add(txtArea);

rightBox.setLayout(new BoxLayout(rightBox, BoxLayout.Y_AXIS));
rightBox.add(btnSave);
rightBox.add(btnRefresh);

this.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();

gbc.gridx = 0;
gbc.gridy = 0;
gbc.fill = GridBagConstraints.BOTH;
this.add(leftBox, gbc);

gbc.gridx = 1;
gbc.gridy = 0;
gbc.fill = GridBagConstraints.BOTH;
this.add(rightBox, gbc);

txtArea.append("-------------");

enter image description here

最佳答案

  • 如果将 gbc.weightx = 1f; 用于第一个约束,将 0f 用于第二个约束,则该方法有效。
  • 还将 txtArea = new JTextArea(); 更改为 txtArea = new JTextArea(15,20); 以建议初始大小。
  • 将文本区域包裹在滚动 Pane 中,以提高美观性和可用性。
  • “它们之间有 10 像素的填充” - 为此使用 GridBagConstraintsInsets

以下是实现这些建议后的效果。

enter image description here

..并拖得更宽。

enter image description here

关于java - 如何在Java中设置GridBagLayout的列宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44048213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com