在编辑面板后读取面板到布局?

我要做的是动态编辑面板并将其读取到(边框)布局。 该面板包含文本字段,我希望用户能够向面板添加或删除文本字段。 我尝试的是以下内容:从布局中删除面板,向面板添加另一个文本字段,将面板读取到布局。 然而,这不起作用(没有发生任何事情;只有面板被删除但没有读入新的文本字段,因此该区域只是空的)。 即使我从布局中移除了面板,然后将另一个组件添加到该位置的布局(BorderLayout.EAST); 没事(只是空的)。

这是代码中不起作用的部分:

vfields[blocks] = new TextField("0"); //add new textfield to the array of textfields blocks += 1; dp.blocks = blocks; this.remove(values_fields); //remove the values_fields panel from the borderlayout values_fields.add(vfields[blocks]); //add new component,textfield to the panel this.add(values_fields, BorderLayout.EAST); //readd the panel to the border layout<-- doesn't work 

我希望任何人都可以帮助我。 我对Java很陌生,所以我可能只是做了一些完全错误的事情,但我自己也没有看到。

提前致谢!

Skyfe。

无需移除整个面板。 您只需删除/添加现有面板的组件即可。 在可见的GUI上,代码的顺序是:

 panel.remove(...); panel.add(...); panel.revalidate(); panel.repaint(); 

如果您需要更多帮助,请发布您的SSCCE 。

看起来它再也没有重新粉刷。 在gui更改后,您是否尝试调用以下两种方法:

  validate(); repaint();