ActionListener在循环方法时调用

时间:2015-05-02 09:53:07

标签: java swing jbutton chat actionlistener

我添加一个ActionListener,它创建一个可以从服务器发送和接收消息的新聊天JFrame。这是ActionPerformed()方法中的代码

BananaChat chat = new BananaChat(name, password, IP, port, status);
    try {
        chat.chatting();
    } catch (Exception e) {
        showInfo("fail");
    }

所以它创建了一个新的聊天框架,如果我没有调用chat.chatting()方法,我可以正常地将消息发送到服务器,但是无法从服务器接收消息。所以我必须调用这个方法,因为如果确实发送了消息,我需要继续监听来自服务器的消息。

这是chat()的代码

String line = null;

    try {
        while ((line = in.readLine()) != null) {
            if (line.equals("your user name is already registered") || line.equals("user name doesn't exist") || line.equals("wrong password")) {
                showMessage(line);
                break;
            }

            showMessage(line);
        }

    } catch (IOException e) {
        showMessage("can not receive the message");
    }

这是while循环。 如果我创建我的聊天框架并在main方法中调用此方法,它可以工作,但如果我在ActionListener中创建聊天框架,它将被卡住。似乎ActionListener不能有一个不会结束的while循环。

我不知道如何解决它,是否有更好的方法从登录界面创建新的聊天界面?

0 个答案:

没有答案