Llamamos Interfaz Gráfica GUI (Graphical User Interface) al conjunto de componentes gráficos que posibilitan la interacción entre el usuario y la aplicación. Es decir ventnas, botones, combos, listas, cajas de diálogo, campos de texto, etc.
Primero tenemos que diseñar la aplicación,programarla y por último los eventos que se generan a medida que el usuario interactua con la Interfaz.
Los componentes son objetos de las clases que heredan de la clase base componente como Button, List, TextField, TextArea, Label, etc.
En una GUI los componentes son contenidos en Contenedores o containers.
Un Containes es un objeto cuya clase hereda de Container(clase que a su vez es subclase de Component) y tiene la responsabilidad de contener Componentes.
Generalmente una GUI se monta sobre un Frame.Esté sera el Container principal que contendrá a los componentes de la Interfaz Gráfica, un Container podría contener a otros containers.
Contenedores- JFrame.Habitualmente la clase JFrame se emplea para crear la ventana principal de una aplicacion en Swing.
- JDialog.Ventanas de interaccion con el usuario.
- JPanel.Agrupa a otros componentes.
- JScrollPanel .Incluye barras de desplazamiento
La API de Java para desarrollo de GUI
La interfaz de ususuario es la parte del programa que permite al usuario interaccionar con él.
La API de Java proporciona una biblioteca de clases para el desarrollo de Interfaces graficas de usuario(en realidad son dos).
La biblioteca proporciona un conjunto de herramientas para la construccion de interfaces graficas,su estructura basica gira en torno a componenest y contenedores.
La API esta constituida por clases,interfaces y derivaciones.
- AWT (Abstract Windows Toolkit ) y Swing son librerías de clases para el desarrollo de GUIs.
- Algunos componentes de AWT usan código nativo y por ello es dependiente de la plataforma Java 5.
- Swing está escrito completamente en Java por lo que es independiente de la plataforma
-Las aplicaciones distribuídas entre varias plataformas tiene la misma apariencia
-Se puede considerar como el reemplazo de AWT
Componentes de AWT
Componentes de Swing
Ejemplo1
Crear un boton
package blog; import javax.swing.*; import java.awt.*; public class gui01 extends JFrame{ private Container panel; private JButton miboton; public gui01(){ super("Ejemplo 01 con boton"); //Configurar componentes miboton=new JButton("Aceptar"); panel=getContentPane(); panel.add(miboton); setSize(200,100); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] args) { gui01 a=new gui01(); } }
Reproducir un valor
package blog; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class gui02 extends JFrame{ JButton botonCopiar; JTextField campoValor,resultado; public gui02(){ setLayout(new FlowLayout()); add(new JLabel("Valor")); campoValor=new JTextField(5); add(campoValor); botonCopiar=new JButton("Copiar"); add(botonCopiar); botonCopiar.addActionListener(new OyenteBoton()); add(new JLabel(" Copia")); resultado=new JTextField(6); setSize(400,100); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] args) { gui02 ventana=new gui02(); } class OyenteBoton implements ActionListener{ public void actionPerformed(ActionEvent e){ String valor=campoValor.getText(); resultado.setText(valor); } } }