javax.comm duda!!

Que onda foro de nuevo con una duda, sucede que en mi escuela de tarea me dejaron hacer un programa por medio del cual podamos manejar el microcontrolador PIC18F4550, lo hice con Java Communications y todo muy bien, pero tengo un problema que no he podido resolver, que despues de iniciar el programa dependiendo de si detecta o no el PIC hace acciones, mas sim embargo, cuando cambiamos de estado, es decir que al inicio del programa detecta el micro y despues se desconecta el micro el programa me sigue diciendo que el micro esta conectado, aqui deja la parte que obtiene la lista de puertos.

javax.comm.CommPortIdentifier portId;
com.sun.comm.Win32Driver driver = new com.sun.comm.Win32Driver();
driver.initialize();
java.util.Enumeration portList = javax.comm.CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements())
{
portId = (javax.comm.CommPortIdentifier)portList.nextElement();
if (portId.getPortType() == javax.comm.CommPortIdentifier.PORT_SERIAL){
if(i==0){
puerto[i]=portId;
i++;
}
else if(portId.getName().equals(puerto[i-1].getName())==false){ puerto[i]=portId;
i++;
}
}
}

Espero alguien me pueda ayudar :)

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

si los estas haciendo por el

si los estas haciendo por el puerto serie entonces deberías de utilizar un pin que te indique si el pic esta o no conectado. osea que cuando conectes el pic el pin te genere un 1 y cuando lo desconectes el pin te genere un 0.