Hola,
Bueno, una idea inicial podría ser la siguiente, podrías crear un hilo (Thread) que conozca el botón que tiene que actualizar, y en su tiempo de vida lo actualice consecuentemente según su estado.
Por ejemplo:
Código Java:
Ver originalimport javax.swing.JTextArea;
public class Pinger
implements Runnable {
this.area = area;
}
@Override
public void run() {
int i = 0;
while (i++ < 5) {
try {
firePingEvent();
}
}
}
public void firePingEvent() {
area.setText(area.getText().concat("Ping\n"));
}
}
En el constructor le pasamos como parámetro un TextArea, que lógicamente podría ser un botón o cualquier cosa. Como es un ejemplo solamente hace un sleep pero tendrías que cambiarlo por el código que realiza el ping y cada intervalo de ping actualiza el TextArea colocando el mensaje. Por supuesto que tendrías que cambiar la lógica para que funcione como quieres.
En el código del frame principal o no sé, donde inicializas el 'pinger', crearías un hilo independiente, con el componente que deseas, como por ejemplo:
Es un idea básica, realmente existen varios métodos para hacer lo que estas solicitando,
Saludos,