Siema
W celach dydaktycznych tworzę sobie małą apkę w stylu chat. Serwer mam normalnie na socketach (działa dobrze), klient jest w JavaFX.

Mam problem z klientem, mam kontroler ChatController do pliku "chat.fxml", który obsługuje GUI czatu.
Mam także klasę ClientApplication, która obsługuje połączenie z serwerem. Kontroler zawiera m.in. obiekt ClientApplication

W ClientApplication mam metodę listen(), która nasłuchuje i obsługuje przysyłane do nas wiadomości

private void listen() {
        Thread listenThread = new Thread(() -> {
            try {
                DataInputStream dataInputStream = new DataInputStream(socket.getInputStream());
                while (!exitStatus) {
                    if (dataInputStream.available() > 0) {
                        int senderId = dataInputStream.readInt();
                        String text = dataInputStream.readUTF();

                        String username = Database.getLogin(senderId);
                        System.out.println(username + ": " + text);
                    }
                }
                sendCommand(-1);
            } catch (Exception e) {
                e.printStackTrace();
            }
        });
        listenThread.start();
    }
}

Zamiast wypisywać do konsoli, chciałbym wywoływać metodę z kontrolera drawReceivedMessageLabel(String message), która rysuje podrasowany Label z tekstem
Próbowałem tak (pobrać instancję kontrolera i wywołać jego metodę):

FXMLLoader loader = new FXMLLoader(getClass().getResource("chat.fxml"));
ChatController chatController = loader.getController();
chatController.drawReceivedMessageLabel(text);

Czy wie ktoś jak tu zaradzić?