Problema com exception em leitura serial (Thread)

2 respostas
P

Pessoal tenho um pequeno app com 2 classes para leitura serial, na classe A eu tenho minha tela swing com um jtextfield (que deve receber os dados). Na classe B tem o loop onde efetivamente capturo os dados na serial.
Com instancio a classe B na classe A e chamo os métodos as leituras na serial só são impressas na tela (classe A) quando eu finalizo a classe B. Tentei usar um thread para fazer a class B ir executando o loop e a classe A ficar recebendo os dados e exibindo pro usuário. Fiz dessa forma:

A a = new A();
new Thread(new Runnable() {
                public void run() {
métodos invocados para a leitura serial e para jogar essa leitura no jtextfield
}
            }).start();

Quando tento executar a leitura na serial ocorre a seguinte exception:

Exception in thread "Thread-2" java.lang.NullPointerException
        at br.com.alimentoswilson.gui.Main$12.run(Main.java:618)
        at java.lang.Thread.run(Thread.java:595)

Alguém que tem habilidade com threads pode dar uma ajuda?

2 Respostas

mister_m

Envie o conteúdo da linha 618 de Main e a declaração e a inicialização de cada variável utilizada nessa linha.

P
Vamos por partes:  <img src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/s.pngmiley.png?v=9" title=":smiley:" class="emoji" alt=":smiley:">

Classe A = Main;

Classe B = SerialComLeitura;
//Instancia na linha 57
SerialComLeitura serial = new SerialComLeitura("COM1", 9600, 3000);

//Linha 618 tudo isso dentro da declaração da Thread
if(serial.getColor().trim().equals("amarelo")){
//Restante de laço
                          jTextFieldPeso.setForeground(new java.awt.Color(204, 204, 0));
                        }else if(serial.getColor().trim().equals("vermelho")){
                            jTextFieldPeso.setForeground(new java.awt.Color(0, 153, 51));
                        }

Basicamente é isso. Não sei ao certo de vai influenciar mas SerialComLeitura implementa Runnable.

Criado 5 de junho de 2007
Ultima resposta 5 de jun. de 2007
Respostas 2
Participantes 2