当前位置: 首页 > 知识库问答 >
问题:

从JPanel获取GridBagConstraints

宋高谊
2023-03-14

我有一个从文件生成的面板。我不知道到底要添加多少字段和标签,我希望它包含两列label和field。我认为我可以通过GridBagLayout和GridBagConstraints来做到这一点,但我不知道如何做到这一点。有人知道如何从JPanel/JFrame中恢复GridBagConstraints吗?

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

共有1个答案

穆招
2023-03-14

我有一个从文件生成的面板。我不知道到底要添加多少字段和标签,我希望它包含两列label和field。我认为我可以通过GridBagLayout和GridBagConstraints来做到这一点,但我不知道如何做到这一点。有人知道如何从JPanel/JFrame中恢复GridBagConstraints吗?

>

将currenet布局设置为临时变量(我假设有jlabel和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);
}
  • 然后非常简单,类似的方法可以从容器中删除一些JComponent,并用一个新的

你能提出的任何替代方案都将不胜感激。

  • 将JTable用于可变数量的列和行
 类似资料:
  • 问题内容: 我如何获得JPanel所在的JFrame? 我当前的解决方案是询问面板的父面板(依此类推),直到找到Window: 标准库中有没有一种更优雅的方法? 问题答案: 您可以使用 将返回可转换为顶级类型的Window的方法。

  • 问题内容: 我动态地添加到(与和)。部分代码是从那里借来的。 我正在尝试从的组件获取文本,但无法成功。 编辑: 这是一个包含子面板,和。 这是AddButton的代码: 我试图从中获取文本的代码不起作用: } 您的答复将不胜感激。 问题答案: 问题是:您正在遍历以下子项: 并期望有一个: 但是,既然您已经添加了,jPanel1的子项就不会了! 因此,要访问,您必须在一秒钟内遍历的子项! 例:

  • 我在写一个简单的信息管理程序的代码。我在Java swing GUI中遇到了麻烦。在这段代码中,我计划在Northpanel_center中使用JTextField字符串,以便在NorthPanel_East中使用。但我不能用它。 要补充的是,类似这样的搜索方法。

  • 我已经创建了一个JFrame包含2。我已经在panel1中添加了panel2。panel1.add(panel2); 我在面板2中添加了一个文本区域。 最后panel1到getContentPane 现在我得到了textarea的位置 textarea.get位置(); 我创建了一个保存按钮,用于保存textarea(x,y)值。我使用xml存储(x,y)值。 现在,当我关闭并重新打开jar文件时

  • 问题内容: 我有文本框,在另一个面板中有保存按钮。如果单击保存按钮,则必须获取第一个面板文本框的值。 如何访问? 问题答案: 只需将TextField设置为Public Static dats即可。然后您可以使用ClassName.TextFiledName访问TextField

  • 因此,我创建了一个简单的模拟,其中方块是随机产生的,随机向量和窗口边缘的反弹。 我希望它能考虑到正在调整的窗口大小。因此,如果我将窗口的尺寸从600x600改为1200x600,则新边框的方块将会弹出,而不是600x600。 我尝试执行getWidth()getHeight(),但它将返回0。因此,我将它放在pain()(因为它在window resize中被调用)方法中,并将返回值保存为局部变量