窗口关闭和JFrame的单个实例

时间:2014-03-31 17:14:27

标签: java swing

两个+ 1个问题:

  1. 我是一个独立的应用程序,并为它创建了一个可运行的jar。现在,当我双击它时,会打开一个JFrame窗口,我需要登录。问题是,如果我双击它,我可以打开多个JFrame窗口。我需要的是,一旦我登录,任何时候我再次尝试打开它,它应该显示当前登录的窗口。或者以这种方式,创建该JFrame窗口的单个实例。

  2. 关闭窗口时,我需要在关闭前进行一些操作。我知道我可以使用WindowListener但是当我关闭JFrame时这不起作用(如终止应用程序)。有没有办法在手动终止之前执行任何操作?

  3. 编辑:另一个问题:

    1. 点击了' x'(关闭)后,我setExtendedState(JFrame.ICONIFIED);进行了最小化JFrame窗口。它最小化但从任务栏消失。有没有办法像常规最小化一样保留在任务栏中?

1 个答案:

答案 0 :(得分:3)

1)

让您的main方法搜索该程序的另一个实例。如果找到一个,请关注该窗口并将其关闭。您可以在此处的类似问题中详细了解该问题:Question

2)

使用关机钩:

Runtime.getRuntime().addShutdownHook(new Thread() {

    @Override
    public void run() {...} //your code to run when closing the program

}