Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何打开同一Java应用程序的另一个版本?_Java_Swing - Fatal编程技术网

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

如何打开同一Java应用程序的另一个版本?,java,swing,Java,Swing,我在网络聊天系统中添加了一种方法,可以在打开另一个连接的同时连接到另一台服务器。我设置它的方式很有效,只是它不是系统的独立实例。当我关闭主窗口时,它也会关闭所有其他窗口。有什么方法可以打开登录窗口的全新实例吗 以下是我正在使用的代码: public void actionPerformed(ActionEvent e) { String[] input = null; Login.main(input); } @HovercraftFullOfE

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

以下是我正在使用的代码:

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

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

要仅涵盖您的用例,请执行以下操作:

  • 您可以维护已创建窗口的列表(JFrame)
  • 不要在关闭时退出,而是进行处置
  • 关闭时从列表中删除窗口
  • 如果列表中没有窗口,则退出系统
以下是一些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);
            }
        }
    });
final List jframeList=new ArrayList();
JFrame JFrame=新JFrame();
jframeList.add(jFrame);
jFrame.setDefaultCloseOperation(jFrame.DISPOSE_ON_CLOSE);
addWindowListener(新的WindowAdapter(){
@凌驾
公共无效窗口关闭(WindowEvent e){
JFrame=(JFrame)e.getSource();
jframeList.remove(jframe);
if(jframeList.isEmpty()){
系统出口(0);
}
}
});

当你说“窗口”时,你的意思是你正在使用Swing?你想在关闭一个Swing窗口时保持另一个窗口的运行吗?是的,我使用的是JFrames,我只想创建一个全新的应用程序实例,所以当我关闭我最初打开的一个窗口时,其他窗口保持打开状态。请澄清你的问题和你的问题,因为所有的问题仍然非常混乱。此外,您通常不希望交换JFrames。相反,使用CardLayout在JFrame内交换JPanel视图。或者,如果您需要显示“登录窗口”,这通常根本不是JFrame,而是模态JDialog。好的,我正在尽最大努力,但我对编程比较陌生,所以我的回答水平与你们不一样。我正在尝试打开同一应用程序的新实例。我的问题是,当我打开应用程序时,它仍然绑定到第一个应用程序,因此当我关闭该应用程序时,它会同时关闭这两个应用程序。有办法吗?