如何打开同一个应用程序Java的另一个版本?

时间:2016-03-25 01:20:06

标签: java swing

我在网络聊天系统中添加了一种方法,可以在打开另一个连接的同时连接到另一台服务器。我设置它的方式有效,除了它不是系统的独立实例。当我关闭主窗口时,它也会关闭所有其他窗口。有什么办法可以打开一个全新的登录窗口实例吗?

这是我正在使用的代码:

    public void actionPerformed(ActionEvent e) {
        String[] input = null;
        Login.main(input);
    }

1 个答案:

答案 0 :(得分:-1)

@HovercraftFullOfEels在评论中提供的良好实践解决方案。

仅涵盖您的用例:

  • 您可以维护已创建的Windows(JFrame)列表。
  • 不要在关闭时退出而是处置掉。
  • 关闭时从列表中删除Windows。
  • 如果列表中没有窗口,则退出系统。

这里有一些sudo代码:

    final List<JFrame> jframeList = new ArrayList<JFrame>();

    JFrame jFrame = new JFrame();
    jframeList.add(jFrame);

    jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

    jFrame.addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosing(WindowEvent e) {
            JFrame jframe = (JFrame) e.getSource();
            jframeList.remove(jframe);
            if (jframeList.isEmpty()) {
                System.exit(0);
            }
        }
    });