追加TextArea时出现JavaFx NullPointerException

时间:2019-06-05 11:50:51

标签: java multithreading javafx nullpointerexception

我正在使用聊天应用程序,到目前为止,一切正常,除了我不能在视图中写入客户端从服务器检索到的文本,但可以将其打印出来。

那是我得到的错误:

Exception in thread "Thread-6" java.lang.NullPointerException
    at com.terkea/com.terkea.controller.ClientController.lambda$createClient$1(ClientController.java:77)
    at java.base/java.lang.Thread.run(Thread.java:835)

第77行对应于此代码行

muieDragnea.appendText(input);

我还要提及的是,如果删除它,它将在控制台中打印出服务器发出的消息,如果不是同时打印,则视图中的打印和写入都会失败。

这是我应该负责的功能:

@FXML
public TextArea muieDragnea;

@FXML
private void createClient(){
    try {
        socket = new Socket("localhost", portNumber);


        DataInputStream in = new DataInputStream(socket.getInputStream());

        new Thread(()->{
            while(!socket.isClosed()){
                try {
                    if (in.available() > 0){
                        String input = in.readUTF();
                        System.out.println(getUserName() + " > " + input);
                        muieDragnea.appendText(input);
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }).start();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

0 个答案:

没有答案