22.07.2013 Views

PDF de la clase 34

PDF de la clase 34

PDF de la clase 34

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Modificar una GUI <strong>de</strong>s<strong>de</strong> otro hilo<br />

• Básicamente, se crea un objeto que <strong>de</strong>scriba <strong>la</strong><br />

tarea que se <strong>de</strong>be realizar en el hilo <strong>de</strong> eventos a<br />

una hora <strong>de</strong>terminada.<br />

• A continuación, se pasa dicha tarea al hilo <strong>de</strong><br />

eventos mediante un método sincronizador que<br />

<strong>la</strong> pone en co<strong>la</strong> con el resto <strong>de</strong> eventos en <strong>la</strong><br />

co<strong>la</strong> <strong>de</strong> eventos <strong>de</strong>l hilo <strong>de</strong> eventos.<br />

• Swing ejecutará <strong>la</strong> tarea cuando quiera hacerlo,<br />

ya que Swing sólo procesa un evento cada vez,<br />

incluidas estas tareas especiales que pue<strong>de</strong>n<br />

l<strong>la</strong>mar a métodos no sincronizados <strong>de</strong> <strong>la</strong>s<br />

c<strong>la</strong>ses <strong>de</strong> <strong>la</strong> GUI.<br />

51<br />

Uso <strong>de</strong> invokeLater()<br />

• ¿Cómo creamos esta tarea?<br />

Runnable update = new Runnable() {<br />

};<br />

public void run() {<br />

component.doSomething();<br />

SwingUtilities.invokeLater( update );<br />

invokeLater() es un método estático<br />

sincronizado <strong>de</strong> <strong>la</strong> c<strong>la</strong>seSwingUtilities en el<br />

paquetejavax.swing. Inserta <strong>la</strong> tarea en <strong>la</strong> co<strong>la</strong><br />

<strong>de</strong> eventos.<br />

52<br />

26

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!