1

我有一个从文档生成的面板。我不知道要添加多少字段和标签,我希望它制作两列标签和字段。我认为我可以通过 GridBagLayout 和获取 GridBagConstraints 来做到这一点,但我不知道该怎么做。任何人都知道如何从 JPanel/JFrame 中获取 GridBagConstraints 吗?

如果没有,您可以建议的任何替代方案将不胜感激。

4

1 回答 1

4

我有一个从文档生成的面板。我不知道要添加多少字段和标签,我希望它制作两列标签和字段。我认为我可以通过 GridBagLayout 和获取 GridBagConstraints 来做到这一点,但我不知道该怎么做。任何人都知道如何从 JPanel/JFrame 中获取 GridBagConstraints 吗?

  • 您需要在添加到容器的组件内循环

  • 将当前布局设置为临时变量(我假设 JLabels 和 JTextFields 放置在 JPanel 中)

例如

Component[] comps = panel.getComponents();
GridBagLayout layout =  (GridBagLayout) panel.getLayout();

for (int i = 0; i < comps.length; ++i) {
    Component comp = comps[i];
    GridBagConstraints gbc = layout.getConstraints(comp);
    System.out.println("Component : " + comp + " , with GBC: " + gbc);
}
  • 然后非常简单,类似的方法可以从 Container 中删除一些 JComponent 并替换为新的...

您可以建议的任何替代方案将不胜感激。

  • JTable用于可变数量的列和行
于 2013-10-04T08:57:55.940 回答