Saltar al contenido

Cómo crear una GUI en Java con ejemplos

¿Qué es Swing en Java?

Balanceándose en Java Es un conjunto de herramientas de interfaz gráfica de usuario (GUI) que incluye los componentes de la GUI. Swing proporciona un amplio conjunto de widgets y paquetes para crear sofisticados componentes GUI para aplicaciones Java. Swing es parte de Java Foundation Classes (JFC), que es una API para programas Java que proporciona una GUI.

La biblioteca Java Swing está construida sobre el Java Abstract Widget Toolkit (AWT), un conjunto de herramientas de GUI más antiguo y dependiente de la plataforma. Puede utilizar componentes de programación de la GUI de Java como botones, cuadros de texto, etc. de la biblioteca y no necesita crear los componentes desde cero.

En este tutorial de Java Swing, aprenderá:

Diagrama de jerarquía clase Java Swing

Diagrama de jerarquía de clases de Java Swing

JComponent son todos los componentes de Java Swing que se pueden agregar a las clases de contenedor.

¿Qué es una clase de contenedor?

Las clases de contenedor son clases que pueden tener otros componentes. Entonces, para crear una GUI de Java, necesitamos al menos un objeto contenedor. Hay 3 tipos de contenedores Java Swing.

  1. Panel: Es un contenedor puro y no una ventana en sí misma. El único propósito de un tablero es organizar los componentes en una ventana.
  2. Marco: Es una ventana completamente funcional con su título e íconos.
  3. Diálogo: Se puede considerar como una ventana emergente que aparece cuando es necesario mostrar un mensaje. No es una ventana completamente funcional como Frame.

¿Qué es una GUI en Java?

GUI (interfaz gráfica de usuario) en Java Es un generador de experiencia visual fácil de usar para aplicaciones Java. Se compone principalmente de componentes gráficos como botones, etiquetas, ventanas, etc. a través de los cuales el usuario puede interactuar con una aplicación. La GUI juega un papel importante en la construcción de interfaces sencillas para aplicaciones Java.

Ejemplo de GUI de Java

Ahora, en este tutorial de Java Swing, entendamos la GUI con ejemplos de Java Swing.

Ejemplo: Para aprender la programación de la GUI de Java en este tutorial de la GUI de Java
Paso 1) Copie el siguiente código en un editor

import javax.swing.*;
class gui{
    public static void main(String args[]){
       JFrame frame = new JFrame("My First GUI");
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       frame.setSize(300,300);
       JButton button = new JButton("Press");
       frame.getContentPane().add(button); // Adds Button to content pane of frame
       frame.setVisible(true);
    }
}

Paso 2) Guarde, compile y ejecute el código.
Paso 3) Ahora agreguemos un botón a nuestro marco. Copie el siguiente código en un editor de un ejemplo de GUI de Java determinado

import javax.swing.*;
   class gui{
      public static void main(String args[]){
        JFrame frame = new JFrame("My First GUI");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300,300);
       JButton button1 = new JButton("Press");
       frame.getContentPane().add(button1);
       frame.setVisible(true);
     }
}

Paso 4) Ejecute el código. Obtendrás un gran botón

Paso 5) ¿Qué hay de agregar dos botones? Copie el siguiente código en un editor.

import javax.swing.*;
class gui{
      public static void main(String args[]){
           JFrame frame = new JFrame("My First GUI");
           frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           frame.setSize(300,300);
          JButton button1 = new JButton("Button 1");
          JButton button2 = new JButton("Button 2");
          frame.getContentPane().add(button1);
          frame.getContentPane().add(button2);
          frame.setVisible(true);
     }
}

Paso 6) Guarde, compile y ejecute el programa.
Paso 7) Salida inesperada =? Los botones se superponen.

Administrador de diseño de Java

El administrador de diseño se utiliza para diseñar (o configurar) los componentes de la GUI de Java dentro de un contenedor. Hay muchos administradores de diseño, pero los que se usan con más frecuencia son:

Java BorderLayout

UNA. BorderLayout ofrece componentes en hasta cinco áreas: superior, inferior, izquierda, derecha y media. JFrame es el administrador de diseño predeterminado para todos los Java

Java FlowLayout

FlowLayout Es el administrador de diseño predeterminado para todos JPanel. Presenta los componentes uno tras otro.

Java GridBagLayout

Es el diseño más sofisticado. Alinea los componentes colocándolos en una cuadrícula de celdas, lo que permite que los componentes abarquen más de una celda.

Paso 8) ¿Qué hay de crear un marco de chat como se muestra a continuación?

Intente codificarse usted mismo antes de mirar la tabla a continuación.

//Usually you will require both swing and awt packages
// even if you are working with just swings.
import javax.swing.*;
import java.awt.*;
class gui {
    public static void main(String args[]) {

        //Creating the Frame
        JFrame frame = new JFrame("Chat Frame");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 400);

        //Creating the MenuBar and adding components
        JMenuBar mb = new JMenuBar();
        JMenu m1 = new JMenu("FILE");
        JMenu m2 = new JMenu("Help");
        mb.add(m1);
        mb.add(m2);
        JMenuItem m11 = new JMenuItem("Open");
        JMenuItem m22 = new JMenuItem("Save as");
        m1.add(m11);
        m1.add(m22);

        //Creating the panel at bottom and adding components
        JPanel panel = new JPanel(); // the panel is not visible in output
        JLabel label = new JLabel("Enter Text");
        JTextField tf = new JTextField(10); // accepts upto 10 characters
        JButton send = new JButton("Send");
        JButton reset = new JButton("Reset");
        panel.add(label); // Components Added using Flow Layout
        panel.add(tf);
        panel.add(send);
        panel.add(reset);

        // Text Area at the Center
        JTextArea ta = new JTextArea();

        //Adding Components to the frame.
        frame.getContentPane().add(BorderLayout.SOUTH, panel);
        frame.getContentPane().add(BorderLayout.NORTH, mb);
        frame.getContentPane().add(BorderLayout.CENTER, ta);
        frame.setVisible(true);
    }
}