我正在努力使用 java GUI - 提前感谢您的任何帮助!我有一个 JFrame,其中有几个组件:触发动作侦听器的按钮 (Jbutton),comp它是一个组件我试图用其中的组件替换JScrollPane(不管是什么类型的组件,可以是文本字段,桌子或任何东西)。
我想触发一个动作 - 删除组件,将一个新组件放在与已删除组件相同的位置并重新绘制窗口(我使用它来显示不同类型的文本字段和 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 的内容,它会被刷新但它仍然显示旧的)。
我写的有点象征性,因为我的代码很长......感谢您的帮助!编辑:在我的代码中忘记了一行..