两个+1问题:
我有一个独立的应用程序并为其创建了一个可运行的 jar。现在,当我双击它时,会打开一个
JFrame
窗口,我需要登录。问题是,如果我双击它,我可以打开多个 JFrame 窗口。我需要的是一旦我登录,每当我尝试再次打开它时,它应该显示当前登录的窗口。或者这样说,创建该JFrame
窗口的单个实例。关闭窗口时,我需要在关闭之前做一些操作。我知道我可以使用 WindowListener,但是当我关闭 JFrame 时(如终止应用程序),这不起作用。有没有办法在手动终止之前执行任何操作?
编辑:另一个问题:
- 我做了一个
setExtendedState(JFrame.ICONIFIED);
来在单击“x”(关闭)时最小化JFrame
窗口。它最小化但从任务栏中消失。有没有办法像普通最小化一样保留在任务栏中?
最佳答案
1)
让您的 main 方法搜索该程序的另一个实例。如果找到,请聚焦该窗口并让它自行关闭。您可以在类似的问题中阅读更多相关信息:Question
2)
使用关闭 Hook :
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {...} //your code to run when closing the program
}
关于java - 窗口关闭和 JFrame 的单个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22767961/