我正在努力学习Java GUI,感谢您提前的任何帮助!我有一个JFrame窗口,在其中有几个组件:触发动作监听器的按钮(JButton),一个组件(comp),我正在尝试使用一个组件替换其中的JScrollPane(无论是文本框、表格还是其他类型都可以)。
我想触发一个动作,删除该组件,将一个新组件放置在与已删除组件相同的位置,并重新绘制窗口(我正在使用此功能来显示不同类型的文本框和JTable)。这是我的代码:
为什么函数替换不起作用?它没有任何作用(它会更改逻辑中的组件,因此如果我访问comp内容,则会刷新,但仍然显示旧内容)。
我写的代码有点象征性,因为我的代码很长...感谢任何帮助!编辑:我忘记了代码中的一行...
我想触发一个动作,删除该组件,将一个新组件放置在与已删除组件相同的位置,并重新绘制窗口(我正在使用此功能来显示不同类型的文本框和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内容,则会刷新,但仍然显示旧内容)。
我写的代码有点象征性,因为我的代码很长...感谢任何帮助!编辑:我忘记了代码中的一行...