从JPanel获取GridBagConstraints

时间:2013-10-04 07:49:42

标签: java swing gridbaglayout

我有一个从文档生成的面板。我不知道我将添加多少字段和标签,我希望它可以制作两列标签和字段。我怎么认为我能做到这一点是使用GridBagLayout并获得GridBagConstraints,但我无法弄清楚如何做到这一点。任何人都知道如何从JPanel / JFrame中取回GridBagConstraints?

如果没有,我们将非常感谢您提出的任何替代方案。

1 个答案:

答案 0 :(得分:4)

  

我有一个从文档生成的面板。我完全不知道   我将添加多少个字段和标签,我希望它可以制作两个   标签和字段的列。我怎么认为我能做到这一点   GridBagLayout并获取GridBagConstraints,但我无法想象   如何做到这一点。任何人都知道如何获得GridBagConstraints   超出JPanel / JFrame?

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

  • 将currenet布局带到临时变量(我认为JLabel和JTextFields放在JPanel中)

e.g。

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表示可变数量的列和行