PDF de la clase 34
PDF de la clase 34
PDF de la clase 34
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