Как добавить текст в jTextArea из внутреннего класса? - PullRequest
0 голосов
/ 02 марта 2020

Я пытаюсь добавить текст к JTextArea в NetBeans из внутреннего класса (в частности, класса потока). Я написал это утверждение:

jTextArea1.append("....");

Это хорошо работает во внешнем классе, но ничего не происходит внутри внутреннего класса! Оператор пропущен, и следующие операторы работают хорошо!

Внутри основного метода во внешнем классе:

try{
        listeningSocket = new ServerSocket(5555);
        dataSocket = listeningSocket.accept();
        socketOut = new PrintWriter(dataSocket.getOutputStream(),true);
        socketIn = new BufferedReader(new InputStreamReader(dataSocket.getInputStream()));

        ChatServerWindow c = new ChatServerWindow();
        ChatServerWindow.ClientHandlerThread clientThread = c.new ClientHandlerThread(dataSocket);
        Thread t = new Thread (clientThread);
        t.start(); 

       }
    catch (Exception ex) {
        System.err.println("Error while connecting");
        System.exit(1);
    }

Внутри внутреннего класса:

public void run() {
   try{
       dataIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));

        while(true)
        {
            messageFromClient = dataIn.readLine();
            if(messageFromClient!=null)
            {
                 //This statement is not working
                jTextArea1.append("Client: " + messageFromClient + "\n");

            }
        }

      }
      catch(IOException ex)
      {
        System.err.println("Error while communicating with client");
        System.exit(1);
      }
   }

Что мне делать в этом случае? Спасибо

...