Di solito, essendo le funzioni di lettura da uno stream bloccanti, è buona norma utilizzare un thread apposito che stia sempre in ascolto sulla porta attraverso cui arrivano le risposte ai tuoi comandi. Anche se probabilmente stai usando javax.comm dai un'occhiata al semplice codice di esempio di rxtx che permette collegamento, lettura e scrittura utilizzando una seriale:

http://rxtx.qbang.org/wiki/index.php...he_serial_port

Come vedi, sia la lettura che la scrittura avvengono in thread separati. Non dovrebbe essere molto difficile inserire un JButton con l'invio dei tuoi comandi.