【发布时间】:2012-11-19 14:54:24
【问题描述】:
我正在努力使用 java GUI - 提前感谢您的帮助!我有一个 JFrame,其中有几个组件:button (Jbutton) 触发动作侦听器,comp 这是我试图替换 JScrollPane 的组件strong> 里面有一个组件(不管是什么类型的组件,可以是文本字段、表格或任何东西)。
我想触发一个动作 - 删除组件,将一个新组件放在与已删除组件相同的位置,然后重新绘制窗口(我使用它来显示不同类型的文本字段和 JTable)。这就是我所拥有的:
JScrollPane sp = new JScrollPane(comp);
this.add(sp, BorderLayout.CENTER);
//this works so far - first time I display this is ok!
private void replace() {
comp = new Component(...); //name and type of the components is not important
sp = new JSCrollPane(comp);
this.remove(sp); //remove old component
add(sp, BorderLayout.CENTER);
repaint();
revalidate();
}
为什么函数不能代替工作?它没有做任何事情(它改变了逻辑组件,所以如果我访问 comp 的内容,它会被刷新但它仍然显示旧的)。
我写的有点象征意义,因为我的代码很长...感谢您的帮助! 编辑:在我的代码中忘记了一行..
【问题讨论】: