0

我的代码由三个类组成,例如:x(extends JFrame)、y(extends JPanel) 和 z。x 具有主要功能。它有borderLayout,里面有两个面板:left 和center。左面板有一堆 JButtons 和 JTextFields,用户在其中输入他的值,这些值用于将一些东西绘制到我的 y 类处理的中心面板中。

z 类被 y 类用于一般计算目的。现在我几乎完成了程序的制作,并且正在左侧面板中的“清除”按钮上工作,该按钮将清除用户输入的所有文本以及已绘制到我的中心面板中的内容(由 y 类处理)。

我能做的是将一些值设置为默认值并 repaint() 我的中心面板,但问题是有很多变量,然后我的 z 类中又有很多变量(由 y 实例化) .

这变得令人困惑和令人厌烦,所以我在想是否有任何方法可以(我在这里违反垃圾收集规则)我可以杀死我的 x 类中的 y 实例并创建一个新实例。那会很整洁。告诉我在这种情况下我应该怎么做。谢谢。

编辑:我想要清除按钮来删除已经绘制到我的面板中的内容,所以我可以在我的 x 类中执行此操作吗?

remove(myRightpanelInstance);
myRightPanel myRightpanelInstance2 = new myRightPanel();
add(myRightpanelInstance2, BorderLayout.CENTER);

顺便说一句,它不起作用。

4

1 回答 1

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
        }
    })
于 2012-11-26T19:45:03.043 回答