Atualização do Jframe em tempo de execução

4 respostas
C

Boa tarde pessoal talvez este tema já tenha sido discutido anteriormente, mas como meu projeto está na metade do caminho fica um pouco complicado remodelar.

Eu recebo valores da serial, separo esses valores e gostaria de mostrar esses valores na classe responsável pela interface gráfica (Jframe).

classe principal FrmMain

public class FrmMain extends JFrame implements InterfaceConfiguration{
 //metodos para criar botoes etc
...
//um atualiza o scrollbar e atualiza o jlabel

	public void set_jscbarMod(int arg0) {
		this.jscbar_modIndex.setValue(arg0);
		this.jlbl_modIndex.setText(String.valueOf(arg0));
		
	}

}

agora a interface que eu criei

public interface InterfaceConfiguration  {
	public void set_jscbarMod(int arg0);
}

a classe que irá separar os bytes e atualizar os dados na FrmMain

public class DivideBytes {
private InterfaceConfiguration interfaceCfg ;
private String modLevel;

public void divByte(int[] buffer) {
          modLevel = String.valueOf(buffer[12]) + String.valueOf(13);
          ConfigureMain();

	}

public void ConfigureMain() {
	interfaceCfg.set_jscbarMod(getModLevel());
	}


	public int getModLevel() {
		return Integer.parseInt(modLevel);
	}

e na classe serial

public void serialEvent(SerialPortEvent evt) {
		
		// Determine type of event.
		switch (evt.getEventType()) {
		// When serial port receive 1 byte
		case SerialPortEvent.DATA_AVAILABLE:
				int[] data = new int[29];
				try {
					while (is.available() > 0) {
						// buffer
						int count = 0;
						while (count < 29) {

							data[count] = is.read();
						
						}					
						div.divByte(data);
						div.ConfigureMain();
						
					}
			} catch (IOException e) {
				System.err.println(e);
				return;
			}

		}

	}
ma so erro que está acontecendo é

[color=red]

Exception in thread “Win32SerialPort Notification thread” java.lang.NullPointerException

at modulador.model.DivideBytes.ConfigureMain(DivideBytes.java:54)

at modulador.model.DivideBytes.divByte(DivideBytes.java:49)

at modulador.control.SerialConnection.serialEvent(SerialConnection.java:284)

at com.sun.comm.Win32SerialPort.sendDataAvailEvent(Win32SerialPort.java:649)

at com.sun.comm.NotificationThread.run(Win32SerialPort.java:878)

[/color]

como eu passo os parametros para poder atualizar um jlabel lá na classe FrmMain através de outra classe?

Obrigado pessoal

4 Respostas

H

Este erro normalmente ocorre quando você tenta acessar um objeto, que não foi instanciado.

Agora a questão de atualizar em tempo de execução um JFrame é fácil, você pode implementar
uma Thread especial para Swing que chama SwingWorker.

Onde você implementará o método que você deseja que atualize o JFrame em tempo de execução,
e ela se encarregara de fazer o resto.

Marky.Vasconcelos

SwingWorker é apartir da versão 1.6
E sobre o NullPointer tem alguma coisa não instanciada

C

Utilizar o SwingWorker não é tão interessante porque eu preciso manter compatibilidade com jre 1.5.
Mas o seguinte simplificar meu problema acho que deixei um pouco confuso.

tenho 2 classes
cada uma uma jframe

jframe A tem um jbutton
jframe B tem um jlabel
as duas são inistanciadas na classe startApp

quando eu pressionar o jbutton do jframe A o jlabel do jframe b aparecerá TESTE
por exemplo.

so q no meu caso o jframe A, é a classe serial rs

eu tentei utilizando interface e nao deu mto certo,
alguem poderia me dar uma sugestão de como implementar isso?
essa falta de conceito ta complicada rsrsrs

vlw galera

C

Utilizar o SwingWorker não é tão interessante porque eu preciso manter compatibilidade com jre 1.5.
Mas o seguinte simplificar meu problema acho que deixei um pouco confuso.

tenho 2 classes
cada uma uma jframe

jframe A tem um jbutton
jframe B tem um jlabel
as duas são inistanciadas na classe startApp

quando eu pressionar o jbutton do jframe A o jlabel do jframe b aparecerá TESTE
por exemplo.

so q no meu caso o jframe A, é a classe serial rs

eu tentei utilizando interface e nao deu mto certo,
alguem poderia me dar uma sugestão de como implementar isso?
essa falta de conceito ta complicada rsrsrs

vlw galera

Criado 5 de setembro de 2007
Ultima resposta 6 de set. de 2007
Respostas 4
Participantes 3