Uso de SwingUtilities.invokeLater() en Java

Zeeshan Afridi 12 octubre 2023
Uso de SwingUtilities.invokeLater() en Java

En la programación de Java, para proporcionar a los desarrolladores una forma fácil de evitar el acceso simultáneo a ellos, los diseñadores de Swing proporcionaron la regla de que todo el código que accede debe ejecutarse en el mismo hilo.

El método SwingUtilities.invokeLater() ejecuta el ejecutable en el subproceso de envío de eventos de Abstract Window Toolkit (AWT). Lo hacemos porque las estructuras de datos Swing no son seguras para subprocesos.

La seguridad de subprocesos significa que se puede usar en paralelo desde más de un subproceso sin causar ningún error.

Uso del Método SwingUtilities.invokeLater() en Java

El método SwingUtilities.invokeLater() es importante cuando se utilizan subprocesos múltiples en aplicaciones Java y se utiliza Swing como interfaz de usuario para las aplicaciones. Cualquier actualización en la interfaz de usuario debe ocurrir en el subproceso de envío de eventos.

El código en el subproceso no se llama directamente desde un controlador de eventos, pero organizamos específicamente nuestro código de actualización de interfaz gráfica de usuario (GUI) y, en general, ese código se llamará en el subproceso de envío de eventos.

Código SwingUtilities.InvokLater():

package codes;

import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class Codes {
  protected static void frameUI() {
    // Creating JFrame and calling from the main method
    JFrame myFrame = new JFrame("Testing SwingUtilities.Invokelater");
    myFrame.setBounds(20, 20, 350, 250);
    myFrame.setVisible(true);
    System.err.println(myFrame.getSize());
    myFrame.setResizable(false);
    System.err.println(myFrame.getSize());
  }

  public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
      @Override
      public void run() {
        frameUI(); // Calling Jframe
      }
    });
  }
}

Subproceso de envío de eventos

En la programación de Java, específicamente, cuando se trabaja con la programación basada en la interfaz gráfica de usuario (GUI) con Swing, debe haber pasado por subprocesos múltiples y haber escuchado o utilizado el subproceso de envío de eventos.

El subproceso de envío de eventos es el subproceso que llama a los controladores de eventos. Esencialmente, este subproceso ejecutará todo el código de la interfaz de usuario (UI).

Es una buena práctica tener un solo subproceso designado que maneje toda la interfaz de usuario (UI) porque ayuda a evitar muchos errores.

Subprocesamiento de Java

Threading es un concepto general en la programación de computadoras. Un subproceso es un subproceso ligero del proceso general.

Mejora el rendimiento general del paralelismo de aplicaciones. Las aplicaciones se dividen en pequeñas unidades ejecutables que a veces se ejecutan de forma independiente ya veces de forma dependiente, según la naturaleza de la tarea de la aplicación.

Sintaxis de Thread en Java:

Thread myThread = new Thread();

Cada subproceso tiene un proceso, que representa un flujo de control separado. Estos se implementan con éxito en servidores web y servidores de red.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Artículo relacionado - Java Swing