Boa Noite gente, eu estou fazendo um chat com interface gráfica para que eu aprenda a mexer com Sockets. O usuário escreve num JTextField a mensagem e o cliente manda ela para o servidor, até aqui tá funcionando normalmente, o problema é quando eu tento fazer o servidor enviar essa mensagem pro JTextArea, quando eu faço isso da o erro NullPointerException.
Parte do código da classe Chat
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ENTER) {
cliente.enviarMensagem(nome,mensagem.getText());
mensagem.setText("");
mensagem.requestFocus();
}
}
Parte do código da classe Cliente
public void enviarMensagem(String nome, String msg) {
try {
PrintStream ps = new PrintStream(cliente.getOutputStream());
ps.println(nome+":"+msg);
} catch (IOException e) {
System.out.println("[.:ERRO:.] não foi possível enviar a mensagem!");
}
}
Parte do código da classe Servior
public void escutaCliente(Socket socket) {
try {
Scanner scan = new Scanner(socket.getInputStream());
new Thread(new Runnable() {
public void run() {
while(scan.hasNextLine()) {
String msg[] = scan.nextLine().split(":");
Chat.mostrarMensagem(msg[0]+" disse: "+msg[1]);
}
}
}).start();
} catch (IOException e) {
e.printStackTrace();
}
}
O erro
Exception in thread “Thread-0” java.lang.NullPointerException
at com.ryan.swing.Chat.mostrarMensagem(Chat.java:89)
at com.ryan.socket.Server$1.run(Server.java:37)
at java.lang.Thread.run(Unknown Source)
OBS: eu não consigo enviar o código do jeito certo nos tópicos que eu faço, eu uso o “Texto pré-formatado” mas não funciona.