当前位置:  开发笔记 > 编程语言 > 正文

将JTextField添加到JPanel并显示它们

如何解决《将JTextField添加到JPanel并显示它们》经验,为你挑选了1个好方法。

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

现在我想动态地将一些jTextField添加到JPanel.我写了类似的东西:

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应用程序的新手,所以我肯定错过了一些非常简单的东西,但我看不出是什么.



1> James Schek..:

在Netbeans GUI中,将布局管理器设置为GridLayout或FlowLayout(仅用于测试).您可以通过转到GUI编辑器,单击面板,然后右键单击并选择布局来完成此操作.

一旦更改为其他布局,请转到属性并更改布局属性.对于GridLayout,您需要确保有3个网格单元格.

而不是myPanel.validate(),请尝试myPanel.revalidate().

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

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有