gpt4 book ai didi

java - 将 JTextField 添加到 JPanel 并显示它们

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:29:18 27 4
gpt4 key购买 nike

我正在 NetBeans 中使用 Java 和 Swing 构建一个小应用程序。使用 NetBeans 设计窗口,我创建了一个 JFrame,里面有一个 JPanel。

现在我想向 JPanel 动态添加一些 jTextFields。我写了类似的东西:

Vector textFieldsVector = new Vector();
JTextField tf;
int i = 0;
while (i < 3) {
tf = new JTextField();
textFieldVector.add(tf);
myPanel.add(tf); //myPanel is the JPanel where I want to put the JTextFields
i++;
}
myPanel.validate();
myPanel.repaint();

但什么也没有发生:当我运行该应用程序时,JFrame 显示内部有 JPanel,但 JTextFields 却没有。

我是编写图形 Java 应用程序的新手,所以我肯定遗漏了一些非常简单的东西,但我看不出是什么。

最佳答案

在 Netbeans GUI 中,将布局管理器设置为类似 GridLayout 或 FlowLayout 的东西(仅用于测试)。为此,您可以转到 GUI 编辑器,单击您的面板,然后右键单击并选择布局。

更改为不同的布局后,转到属性并更改布局属性。对于 GridLayout,您要确保有 3 个网格单元格。

尝试使用 myPanel.revalidate() 而不是 myPanel.validate()。

更规范的方法是创建一个自定义的 JPanel(不使用 GUI 编辑器),它设置自己的布局管理器,用组件填充自己,等等。然后,在 Netbeans GUI 编辑器中,拖放将自定义 JPanel 放入 gui 编辑器中。 Matisse 当然能够处理 Swing 组件的运行时修改,但这不是使用它的正常方式。

关于java - 将 JTextField 添加到 JPanel 并显示它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/546144/

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