gpt4 book ai didi

java - 如何通过创建新实例并销毁旧实例来重置框架

转载 作者:行者123 更新时间:2023-12-02 05:10:19 26 4
gpt4 key购买 nike

我正在制作一个应用程序,它在关闭时作为托盘图标继续运行,然后我就有了这个方法。

public void ResetFrame(){
this.dispose()
new CreateTabs().setVisible(true);
}

这非常简单,关闭框架然后实例化一个新框架,我需要实例化一个新框架,而不是仅仅设置可见,因为东西。然后我在同一个类中多次调用此方法,问题是当我尝试从另一个类调用它时。

if(!createTabs.isVisible()){
createTabs.ResetFrame();
//createTabs.setVisible(true);
}

每次单击按钮时,我都会调用该方法,我希望它关闭前一帧,销毁对象的该实例,以便我可以调用具有新属性的新实例。

问题是:每次我单击按钮时,它都会打开一个新框架,而不关闭旧框架。

我尝试过 dispose()、finalize() 和类似的简单方法,但没有任何积极的结果。

预先感谢您的帮助。

编辑:

对不起我的无知!错误出现在另一个类中,即我调用它的类中。

显然问题是在我实例化该类时:

private final CreateTabs createTabs = new CreateTabs();

我不需要新的 CreateTabs(),我需要的是引用已经存在的。

最佳答案

首先您应该查看this link用于命名约定(小写函数)。

我不是 100% 确定你在问什么,但我看到注释掉的部分,并且知道它会给你一个错误(如果这就是你问的问题)。当你打电话时

public void ResetFrame() 

你说

this.dispose();

这意味着您正在告诉该实例摆脱自身。然后创建一个新实例并将其设置为可见。你说的地方

if(!createTabs.isVisible()){
createTabs.ResetFrame();
//createTabs.setVisible(true);
}

您告诉 createTabs 实例摆脱自身,因此您现在无法让它再次可见。您在 ResetFrame 函数中创建的 CreateTabs 新实例未被引用。如果你希望 createTabs 成为一个“新鲜”的 CrateTabs,你可以说...

public CreateTabs ResetFrame(){
this.dispose()
CreateTabs newTabs = new CreateTabs();
newTabs.setVisible(true);
return newTabs;
}
...
if(!createTabs.isVisible()){
createTabs = createTabs.ResetFrame();
createTabs.setVisible(true);
}

如果这不是您要问的问题,请告诉我。

关于java - 如何通过创建新实例并销毁旧实例来重置框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27383803/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com