类似于QQ的软件,登陆窗口和聊天窗口都在同一个包中
下面这段代码中。明明只有close();为什么会打开新的窗口
public boolean receiveMsg(){
boolean flag = false;
try {
InputStream in = client.getInputStream();

byte[] result = new byte[1024];
in.read(result);

String[] msg = new String(result).trim().split("&");

if(Integer.parseInt(msg[0]) == MessageType.LOGIN_MESSAGE){
if(Integer.parseInt(msg[1].trim()) == MessageType.LOGIN_SUCCESS){
//关闭登陆窗口
//打开聊天窗口
close();


}else if(Integer.parseInt(msg[1].trim()) == MessageType.LOGIN_FAILURE){
JOptionPane.showMessageDialog(null, "用户名或密码不正确,请重新登陆");
}
}
} catch (IOException e) {
e.printStackTrace();
}

return flag;
}

解决方案 »

  1.   

    close()方法呢?看下close()方法,应该不是单纯的关闭吧。
      

  2.   

    frame.JFrame frame = new JFrame("");
    setDefaultCloseOperation(frame.DISPOSE_ON_CLOSE);//手动开闭时只关闭当前窗口,不会关闭整个系统frame.dispose();//程序控制退出以前写程序的时候用到的,不知道对你有没有帮助
      

  3.   

    JFrame frame = new JFrame("");
    frame.setDefaultCloseOperation(frame.DISPOSE_ON_CLOSE);//手动开闭时只关闭当前窗口,不会关闭整个系统上面第一句打错了- -
      

  4.   

    聊天窗口.setVisible(true);
    登录窗口.dispose();
      

  5.   

    登录成功后
    登录窗口:dispose();
    好友列表窗口 窗口frame.show();