miércoles, 18 de noviembre de 2020

Ventana simple en Java Swing

Ventana.java Programa Ventana.java para los entornos JDeveloper y NetBeans.
La zona de descarga está en mi base en pCloud.com
Para descargar todo el proyecto para JDeveloper haz clic aquí.
En el directorio base/Proyecto/JDeveloper/EjSwing están todos los ficheros necesarios para compilar.
Para aprender a conocer el entorno de programación Oracle JDevelper, visita la página
<<Getting Started With the JDeveloper IDE>>

  1  // Ventana.java
  2  // Octulio Biletán * Noviembre de 2020.
  3  // Programa simple que utiliza la biblioteca de clases Java Swing.
  4  // Ingresar a directorio fuente\ y realizar los siguientes pasos
  5  // en el procesador de comandos de Windows:
  6  // 1)Compilar en Windows: javac -encoding UTF-8 cliente\Ventana.java
  7  // 2)Invocar en Windows: java cliente/Ventana
  8  // 3)Crear ejecutable JAR: jar cvf cliente\Ventana.jar cliente\Ventana.class
  9  // 4)Invocar en Windows: java cliente.Ventana
 10  // Lectura: Java Programming, ninth edition (2019), Joyce Farrell, cap. 14, pag. 699.
 11  
 12  package cliente;
 13  
 14  import java.awt.Color;
 15  import java.awt.Dimension;
 16  import java.awt.Font;
 17  import java.awt.Toolkit;
 18  import java.awt.event.ActionEvent;
 19  import java.awt.event.ActionListener;
 20  import java.awt.event.KeyEvent;
 21  
 22  import javax.swing.JButton;
 23  import javax.swing.JFrame;
 24  import javax.swing.JLabel;
 25  import javax.swing.JOptionPane;
 26  import javax.swing.JSeparator;
 27  import javax.swing.SwingConstants;
 28  
 29  /**
 30   * Clase Ventana que construye y muestra una ventana decorada.
 31   * @author Octulio Biletán * Noviembre de 2020.
 32   * @version 1.11.24.20
 33   */
 34  public final class Ventana
 35  {
 36  /**
 37       * Método principal de la clase Ventana.
 38       * @param args Los argumentos que vienen desde la línea de comandos.
 39  */
 40      public static void main(String[] args)
 41      {
 42          // Activa el decorado de la ventana
 43          JFrame.setDefaultLookAndFeelDecorated(true);
 44  
 45          // Crea la ventana y le pone un título
 46          JFrame miVentana = new JFrame("Mi primera ventana");
 47  
 48          // Crea una línea de texto simple
 49          JLabel miMensaje = new JLabel("¡Esto es Java Swing!");
 50  
 51          // Crea un botón para cerrar la ventana
 52          JButton miBoton = new JButton("Cerrar");
 53  
 54          // Crea una línea horizontal
 55          JSeparator miLineaHorizontal = new JSeparator(SwingConstants.HORIZONTAL);
 56  
 57          // Asocia un evento con el botón "Cerrar"
 58          miBoton.addActionListener
 59          (
 60              new ActionListener()
 61              {
 62                  // Método receptor de la pulsación del botón (evento Cerrar)
 63                  public void actionPerformed(ActionEvent e)
 64                  {
 65                      // Hace sonar un timbre en el parlante
 66                      Toolkit.getDefaultToolkit().beep();
 67  
 68                      // Pregunta si sale de la aplicación
 69                      int status = JOptionPane.showConfirmDialog(miVentana, "¿Salgo o no salgo?", "Aviso", JOptionPane.YES_NO_OPTION);
 70                      if(status == 0)
 71                      {
 72                        // Destruye toda la ventana
 73                        miVentana.dispose();
 74          
 75                        // Devuelve 0 al S.O.
 76                        System.exit(status);
 77                      }
 78                  };
 79              }
 80          );
 81  
 82          // Responde a la pulsación de teclas Alt+F4 == Cerrar
 83          miVentana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 84  
 85          // Selecciona una organización libre de los componentes sobre la ventana
 86          miVentana.setLayout(null);
 87  
 88          // Alternativa:
 89          // Ajusta y organiza los componentes de la ventana de izquierda a derecha
 90          //miVentana.setLayout(new FlowLayout(FlowLayout.LEADING));
 91  
 92          // Establece negrita, 24 pts. a la fuente de caracteres
 93          miMensaje.setFont(miMensaje.getFont().deriveFont(Font.BOLD, 24));
 94  
 95          // Establece color rosa al tipo de fuente actual
 96          miMensaje.setForeground(new Color(255,0,255));
 97  
 98          // Dimensiona la ventana (ancho,alto)
 99          miVentana.setSize(320, 240);
100  
101          // Dimensiona el tamaño mínimo de la ventana (ancho,alto)
102          miVentana.setMinimumSize(new Dimension(274,180));
103  
104          // Ubica la ventana en la pantalla (x,y)
105          miVentana.setLocation(16, 8);
106  
107          // La hace visible al momento de la ejecución
108          miVentana.setVisible(true);
109  
110          // Agrega a la ventana el componente etiqueta de texto
111          miVentana.add(miMensaje);
112  
113          // Establece las dimensiones para el mensaje a visualizar
114          miMensaje.setBounds(8, 8, 264, 28);
115  
116          // Agrega a la ventana la línea horizontal
117          miVentana.add(miLineaHorizontal);
118  
119          // Establece las dimensiones de la línea horizontal (x,y,largo,alto)
120          miLineaHorizontal.setBounds(8, 40, 252, 2);
121  
122          // Agrega a la ventana el componente botón
123          miVentana.add(miBoton);
124  
125          // Establece las dimensiones para el botón a visualizar
126          miBoton.setBounds(90, 50, 80, 20);
127  
128          // Establece que las teclas 'Alt+C' respondan al evento 'Cerrar' del botón
129          miBoton.setMnemonic(KeyEvent.VK_C);
130  
131          // La hace visible y efectiva
132          miVentana.validate();
133      }
134  }