编辑面板后阅读窗格到布局?

时间:2010-10-30 18:08:04

标签: java layout awt panels

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

2 个答案:

答案 0 :(得分:0)

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

  validate();
  repaint();

答案 1 :(得分:0)

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

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

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