两个+ 1个问题:
我是一个独立的应用程序,并为它创建了一个可运行的jar。现在,当我双击它时,会打开一个JFrame
窗口,我需要登录。问题是,如果我双击它,我可以打开多个JFrame窗口。我需要的是,一旦我登录,任何时候我再次尝试打开它,它应该显示当前登录的窗口。或者以这种方式,创建该JFrame
窗口的单个实例。
关闭窗口时,我需要在关闭前进行一些操作。我知道我可以使用WindowListener
但是当我关闭JFrame时这不起作用(如终止应用程序)。有没有办法在手动终止之前执行任何操作?
编辑:另一个问题:
setExtendedState(JFrame.ICONIFIED);
进行了最小化JFrame
窗口。它最小化但从任务栏消失。有没有办法像常规最小化一样保留在任务栏中?答案 0 :(得分:3)
1)
让您的main方法搜索该程序的另一个实例。如果找到一个,请关注该窗口并将其关闭。您可以在此处的类似问题中详细了解该问题:Question
2)
使用关机钩:
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {...} //your code to run when closing the program
}