Publicado el 5 de Octubre del 2018
1.498 visualizaciones desde el 5 de Octubre del 2018
1,2 MB
39 paginas
Creado hace 8a (20/09/2015)
UNIVERSIDAD DE EL SALVADOR
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION III
PROGRAMACION EN JAVA
JAVA SWING
PARTE I
Contenido
Java Swing ................................................................................................................................................ 1
Mensajes de diálogo .............................................................................................................................. 1
Ejemplo Login....................................................................................................................................... 4
JFrame ................................................................................................................................................... 5
JLable .................................................................................................................................................... 7
JTextField .............................................................................................................................................. 9
JButton ................................................................................................................................................ 12
Componentes personalizados .................................................................................................................. 13
El administrador de disposición (Layout Manager) ............................................................................ 16
Eventos ................................................................................................................................................ 20
Ejemplo1 Registro de huéspedes ............................................................................................................ 22
TableModel ......................................................................................................................................... 25
Java Swing
Los programas que utilizan exclusivamente interfaces de usuario través de System.in y System.out son llamados
programas de consola. Los programas basados en interfaces gráficas (Graphical User Interfaces, GUI) en Java
son desarrollados a través de un conjunto de clases de los paquetes estándar javax.swing y java.awt. Estos
programas son usualmente llamados programas de escritorio.
Los programas de escritorio utilizan una serie de ventas para su funcionamiento. Un ejemplo de este tipo de
entornos es el mostrado en la figura 1.1.
JMenu
JLabel
JFrame
JText
JButton
Figura 1.1: Formulario realizado con Swing con algunos componentes de la librería
Mensajes de diálogo
Una forma intuitiva de escribir programar con entorno de ventanas, es usando la case JOptionPane, que ya
hemos utilizado en laboratorios anteriores. El código
JOptionPane.showMessageDialog(null, “Programación III);
Nos permite mostrar una ventana en la que podemos mostrar un contenido en forma de String.
1
Para conocer las constantes, atributos y métodos de los que consta alguna clase de Java, basta con consultar el
API (Application Programming Interface) de dicha clase. NetBeans integra la documentación disponible para las
clases en su ayuda contextual. Sin embargo, para que Netbeans pueda mostrar la documentación de dicha clase,
la librería donde se encuentra dicha clase debe incluir dicha documentación.
En la ventana de edición de Netbeans podemos acceder a las declaraciones de los métodos escribiendo
parcialmente el comando y presionando control+spacebar
Otra forma de acceder a la documentación puede ser consultado a través de Intenet, en la dirección:
http://docs.oracle.com/javase/7/docs/api/
2
En el API puede observarse que el método showMessageDialog es un método sobrecargado. Es decir, que tiene
varias definiciones y puede ser utilizado de varias formas.
El API de un conjunto de clases en Java generalmente generado a través del paquete Javadoc, que utiliza la
documentación realizada por el programador para generar la documentación en formato html.
La forma trivial del método showMessageDialog tiene la siguiente descripción Brings up an information-
message dialog titled “Message” (Muestra un cuadro de diálogo de información o mensaje con el título
“Mensaje”). Recibe como parámetros la variable parentComponent (componente padre), de tipo Component, que
determina el Frame (ventana) en la que el dialogo será mostrado. Si es null, o si el parentComponent no tine
Frame, será usado el Frame por defecto.
El parámetro message, de tipo Object es el mensaje que se desplegará.
En este caso, hemos enviado null al parámetro parentComponent (componente padre), lo que significa que la
ventana será mostrada de forma independiente de cualquier otra ventana que se esté mostrando.
3
Para leer valores desde un cuadro de diálogo usamos el método showInputMessage, que despliega un cuadro de
diálogo con una cuadro de texto que permite ingresar valores. Sin embargo, el valor leído por le método y
devuelto como valor de retorno es de tipo String. Para resolver el problema de los valores numéricos, se utilizan
las llamadas clases de envoltorio (Wrapper) que permiten convertir valores String a tipos primitivos o en algunos
casos objetos de dichas clases.
Los métodos más usados para realizar esta conversión se describen en la tabla 1.1
Tabla 1.1: Métodos para
conversión de valores en
formato String a formatos
numéricos.
Clase
Método
Ejemplo
Integer
parseInt
Long
parseLong
Float
parseFloat
Integer.parseInt(“25”) → 25
Integer.parseInt(“25.3”) → error
Long.parseLong(“25”) → 25L
Long.parseLong(“25.3”) → error
Float.parseFloat(“25.3”) → 25.3F
Float.parseFloat(“ab3”) → error
Double
parseDouble
Double.parseDouble(“25”) → 25.0
Double.parseDouble(“ab3”) → error
String sNota = JOptionPane.showInputDialog("¿Cuánto sacaste en el examen de Programación III?");
float fNota = Float.parseFloat(sNota);
JOptionPane.showMessageDialog(null, fNota);
Para desarrollar aplicaciones de escritorio más completas, otras clases del paquete de clases javax.swing, que
permiten crear interfaces de usuario más complejas.
Ejemplo Login
Construyendo un formulario
Supongamos que tenemos el siguiente caso de uso como requerimiento para un programa.
4
Nombre:
Ingresar al sistema
Autor:
PRN315
Descripción:
Verificar las credenciales de acceso al sistema para permitir su acceso.
Actores:
Usuario
Precondiciones:
Flujo normal de los eventos:
1. El usuario solicita el ingreso al sistema
2. El sistema muestra la pantalla de ingreso con el nombre del usuario y la clave.
3. El actor ingresa los datos solicitados
4. Los datos son válidos, el sistema despliega el mensaje: Bienvenido al sistema
Flujos alternativos:
4.1 Las credenciales no son correctas, el sistema despliega el mensaje: Ud. no tiene las credenciales necesarias
para ingresar.
Postcondiciones:
JFrame
La clase JFrame es usada principalmente como
contenedor de otros componentes Swing.
Crearemos un JFrame al que iremos incorporando los
elementos solicitados por el enunciado.
Usaremos el constructor de JFrame que recibe como
parámetro una cadena de caracteres como el título del JFrame.
Si consultamos el API de la clase JFrame, veremos que cuenta con un método setSize, donde uno de sus formas,
recibe dos parámetros que conformarán el tamaño de la ventana en pixeles.
5
package prn315.guia03;
import javax.swing.JFrame;
public class EjemploFrame {
public static void main(String[] args){
JFrame frame = new JFrame("Pantalla de ingreso al sistema");
frame.setSize(300, 300);
frame.setVisible(true);
}
}
La ventana que hemos construido hasta ahora se verá como se muestra en la figura 2.1
Figura 2.1 Frame con título y sin contenido
La apariencia del frame está basada en el tema del sistema operativo sobre el que está ejecutándose el programa.
Para usar la decoración por defecto de las interfaces Java, debemos invocar al método estático
setDefaultLookAndFeelDecorated. Por ser un método de clase, esta configuración será aplicada a todos los
Frames que sean generados por el programa.
6
JLable
JLabel es una extensión de JComponent, por lo que tiene todas
las características de un componente Swing.
Crearemos el label usando el constructor que recibe como
parámetro el texto a mostrar. Una vez creado, agregaremos el
label al frame a través del método add, donde una de sus
implementaciones recibe como parámetro un componente.
public class EjemploFrame {
public static void main(String[] args){
final int FRAME_WITH = 300;
final int FRAME_HEIGTH = 300;
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame("Pantalla de ingreso al sistema");
frame.setSize(FRAME_WITH, FRAME_HEIGTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
JLabel lUsuario = new JLabel("Nombre de usuario: ");
frame.add(lUsuario);
}
}
Este es un ejemplo muy práctico del polimorfismo, ya que el método add utilizado, recibe como parámetro un
objeto de tipo Component, pero en nuestro código estamos agregando un objeto de tipo JLabel. Esto es posible
debido a que JLabel es una clase derivada de Component (una herencia de tercer nivel).
Comentarios de: Programación en Java - Java Swing - Parte I (0)
No hay comentarios