【问题标题】:How to Remove white space in a JFrame如何删除 JFrame 中的空白
【发布时间】:2013-07-30 21:06:12
【问题描述】:

我正在用 Java 开发一个 GUI。我有几个问题想寻求帮助,希望你们中的一些人能提供帮助。

您可能需要下图:

1.. 条目之间的空格:我希望将其删除。现在,每个条目都是一个 GridLayout 为 2,1 的 JPanel。每行都有另一个 JPanel(line1 和 line2)。默认情况下,第 2 行是隐藏的,应该只在单击编辑按钮时显示,然后在再次单击时隐藏。我可以使用 setVisible() 更改可见性。但它创造了那么大的空间。

[已解决] 2.. Line2 有一个 FlowLayout,我怎样才能让它左对齐?

3.. 每个条目都是类(称为“Preset”)并存储在称为“presetListing”的类变量数组中。当我点击新的分支按钮时,我创建了一个容量为 +1 的新数组,将所有旧的预设转移进来,并在最后一个空间中创建一个新的预设。我需要做什么才能让新条目显示在 GUI 中?我尝试将它添加到 JPanel,然后 validate(),没有工作。

希望有人能帮助我,在此先感谢!

编辑: 这是#3中的代码:

private void newBranch(){
    Preset[] tempBranches = new Preset[branches.length + 1];

    for (int i = 0; i < branches.length; i++){
        tempBranches[i] = branches[i];
    }

    tempBranches[branches.length] = new Preset();
    branches = tempBranches;

    pane = new JPanel();
    pane.setLayout(new GridLayout(branches.length, 1));
    for (int i = 0; i < branches.length; i++){
        pane.add(branches[i]);
    }

    scroller = new JScrollPane(pane);
    this.add(scroller, BorderLayout.CENTER);

    this.repaint();
    this.validate();
}

【问题讨论】:

  • #1 我认为您需要更精细的网格。 #2 最好使用borderlayout-manager 而不是flowmanager。 #3 您需要向我们展示您的一些代码,以便我们对其进行审核。
  • GridLayout 使每个组件的大小相同。 GridBagLayout 会更灵活。
  • 更精细的网格是什么意思?您对#2的解决方案有效,非常感谢!我现在会找到代码。
  • 使用GridBagLayout 来更好地控制表单控件,正如@kiheru 建议的那样。
  • 我现在正在查看 GridBagLayout,我发布了我为#3 尝试过的 doe。

标签: java swing jframe jpanel layout-manager


【解决方案1】:

这应该可以用子面板填充面板:

for (int i = 0; i <= _listElements.size(); i++) {
_panel.add(_listElements.get(i), new GridBagConstraints(0, i, 1, 1, 0, 0,
        GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,
        new Insets(0, 0, 0, 0), 0, 0));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 2011-11-12
    • 2021-08-09
    相关资源
    最近更新 更多