我要做的是动态编辑面板并将其读取到(边框)布局。该面板包含文本字段,我希望用户能够向面板添加或删除文本字段。我尝试的是以下内容:从布局中删除面板,向面板添加另一个文本字段,将面板读取到布局。然而,这不起作用(没有发生任何事情;只有面板被删除但没有读入新的文本字段,因此该区域只是空的)。即使我从布局中移除了面板,然后将另一个组件添加到该位置的布局(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。
答案 0 :(得分:0)
看起来它不再重新粉刷。 在gui更改后,您是否尝试调用以下两种方法:
validate();
repaint();
答案 1 :(得分:0)
无需移除整个面板。您只需删除/添加现有面板的组件即可。在可见的GUI上,代码的顺序为:
panel.remove(...);
panel.add(...);
panel.revalidate();
panel.repaint();
如果您需要更多帮助,请发布SSCCE。