我的代码由三个类组成,例如:x(扩展JFrame),y(扩展JPanel)和z。 x具有主要功能。它有borderLayout并且有两个面板:left和center。左侧面板有一堆JButtons和JTextFields,用户输入他的值,这些值用于将一些东西绘制到我的y类处理的中心面板中。
y类使用z类进行一般计算。现在我差不多完成程序了,我正在左边面板上的“清除”按钮,它将清除用户输入的所有文本以及我的中心面板中的内容(由y类处理)。
我可以做的是将一些值设置为默认值并重新绘制()我的中心面板,但问题是有很多变量,然后我的z类中又有很多变量(实例化了)由y)。
这让人感到困惑和厌倦所以我在想,如果我有任何办法(我在这里违反垃圾收集的规则)我可以在我的x类中杀死y的实例并创建一个新实例。这将是如此整洁。告诉我在这种情况下我应该做些什么。感谢。
编辑:我希望清除按钮删除已经绘制到我面板中的内容,这样我可以在我的x类中执行此操作吗?remove(myRightpanelInstance);
myRightPanel myRightpanelInstance2 = new myRightPanel();
add(myRightpanelInstance2, BorderLayout.CENTER);
它无法正常工作。
答案 0 :(得分:0)
根据您的编辑,您要添加新面板并覆盖旧面板。你可以简单地说:
MyRightPanel myRightPanelInstance2 = new myRightPanel();
add(myRightPanelInstance2, BorderLayout.CENTER);
这将使用新的面板覆盖现有面板。
确保此代码在您的监听器中以获取清除按钮。只有在侦听器中调用此代码时才会发生这种情况。
clearButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//Either above code here or above code in a method and method call here
}
})