gpt4 book ai didi

Java Swing ; JFrame 弹出窗口

转载 作者:搜寻专家 更新时间:2023-11-01 02:54:38 25 4
gpt4 key购买 nike

我有一个 JMenuItem 回调,它调用 JFrame 派生类的新实例。

无论何时调用 JMenuItem 回调,原始弹出窗口都不会返回到我的主应用程序的前面。相反,它创建一个新实例和一个新窗口弹出窗口(因此有两个或更多相同的派生类)。

如何做到始终最多只有一个派生类实例?

最佳答案

如果你的派生类真的永远不应该有一个以上的实例,你可以把它变成一个 Singleton ,例如

public class MyFrame extends JFrame {
private static MyFrame instance = null;
private MyFrame() {
// Private to prevent instantiation.
}

public static MyFrame getInstance() {
if(instance == null) {
instance = new MyFrame();
}
return instance;
}
}

当您需要获取一个实例而不是使用 new 时,您只需调用 MyFrame.getInstance(),并且每次都会获取相同的实例(它将在第一次创建)。例如

JFrame myFrame = MyFrame.getInstance();
// now call methods upon myFrame to make it pop up, etc.

如果您要从多个地方执行此操作,那么在MyFrame 中创建一个进一步的静态方法并将代码放入其中可能是有意义的。例如

public static void popUp() {
JFrame myFrame = getInstance();
// now call methods upon myFrame to make it pop up, etc.
}

然后您可以简单地调用 MyFrame.popUp()

关于Java Swing ; JFrame 弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4098673/

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