Download Formularios Java con JFrame

Document related concepts
no text concepts found
Transcript
ttr
y
CLASE: FORMULARIOS CON JAVA – LIBRERÍA JAVA SWING
Tareas Iniciales
Le
1) Crear un nuevo proyecto llamado EscuelaForm
2) Posicionados sobre el paquete abrir un nuevo JFrame que llamaremos gesPersonas, otro
JFrame que llamaremos gesAlumnos y otro más que llamaremos gesProfesores
3) Copiamos los archivos de las clases, no el runtime, del proyecto anterior y los pegamos dentro
del nuevo paquete (Persona.java, Alumno.java y Profesor.java) con refactor copy, lo cual hará
que cambie el nombre del paquete, lógicamente, ya que este es otro proyecto y otro nombre de
paquete.
sa
n
Formulario gesPersonas: primero configuraremos el entorno visual o de diseño y luego
agregaremos el código fuente.
Pr
of
.L
au
r
a
No
us
1) De la biblioteca Swing elegiremos el contenedor Panel y lo colocamos sobre el formulario de
modo tal que quede algo de espacio del lado derecho para colocar dos JButtons: el primero
botón dirá en su Crear Persona y el segundo Ver Datos (para esto hay que seleccionar cada
botón y pulsar PROPIEDADES, y allí cambiar la propiedad text
2) Ahora sobre el panel colocaremos 3 jLabels y 3 jTextFields de modo tal de que el usuario
pueda ingresar los siguientes datos: documento, apellido y nombre
3) Vemos de que los controles visuales queden bien alienados. También notamos que en los
cuadros de texto, o jTextField queda el nombre del control, lo que no es conveniente. Vamos a
cada cuadro de texto y en propiedades buscamos la propiedad Text y borramos lo que sale, si
se achicase el control lo redimensionamos de modo tal que quede bien.
4) La estética la dejaremos para el final, ahora lo que haremos será configurar las variables. Para
ello hay que ir a las propiedades/código de cada jTextField:
En el jTextField correspondiente al documento cambiamos el nombre de variable que figura por
dni; en el correspondiente al apellido cambiamos el nombre de variable por apellido, y hacemos
lo propio con el jTextField correspondiente al nombre. Todos los calificadores o modificadores
deben ser private
5) Hasta aquí hemos estado trabajando en modo diseño con el formulario, ahora iremos al código
fuente, bien abajo y agregaremos estas líneas, para
Creamos la variable persona
lo cual nos posicionamos antes del último
que es del tipo compuesto
corchete y hacemos dos enter seguidos, de
Persona (la clase creada por
esta forma tendremos espacio para
nosotros en el proyecto
escribir dentro de la clase, o va a
anterior)
darnos error:
198
199
200
201
202
203
204
205
206
Persona persona=null;
//métodos para manejar la conversión de los JTextField a String e int
private String convertirCadena(JTextField jf){
return new String(jf.getText());
}
private int convertirEntero(JTextField jf){
return Integer.parseInt(jf.getText());
}
6) Es hora de agregar los eventos que darán funcionalidad al formulario, para lo cual primero
vamos al botón Crer Persona y en propiedades/código cambiamos el nombre que figura por
ttr
y
btnCrearPersona (así sabemos que el objeto es un botón); hacemos algo similar con el botón
Ver Persona, y a la variable la llamamos btnVerPersona
7) clickeamos dos veces sobre el botón Crear Persona, que automáticamente creará el método que
maneja este botón, y que lo ha llamado
btnCrearPersonaActionPerformed(java.awt.event.ActionEvent evt).
Le
Aquí lo que tenemos que hacer es 1º verificar que el usuario no haya dejado los campos en blanco,
y 2º crear la persona con estos datos:
sa
n
private void crearPersonaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(this.dni.getText().equals("") || this.apellido.getText().equals("") || this.nombre.getText().equals(""))
JOptionPane.showMessageDialog(null,"Debe completar todos los datos solicitados","Error",1);
else
persona = new
Persona(convertirEntero(this.dni),convertirCadena(this.apellido),convertirCadena(this.nombre));
}
No
us
El IF no permite crear a la Persona si están vacíos los cuadros de texto. Esto se lleva a cabo
utilizando dos métodos getText() y equals(“”)
Observar que dni es el nombre de variable del cuadro de texto, de allí que con el método
getText() se obtiene el texto contenido en la variable y se ve con equals(“”) si este contenido es
igual a la cadena vacía, si cualquiera de las tres expresiones (una por cada cuadro de texto) es
verdadera, entonces se muestra el error y no se puede crear el objeto Persona.
En cambio si todos los cuadros están completados, entonces la evaluación del IF será falsa y en
este caso sí podremos crear el objeto persona.
Respecto al objeto persona: es necesario utilizar cadenas de conversión, las que insertamos al
final del código fuente. Esto es así porque todo son objetos, también los controles visuales, 1º
hay que obtener el contenido del objeto y pasarlo a int o a String.
au
r
a
8) Bueno nos queda el botón Ver Persona, clickeamos dos veces y sucederá lo mismo que antes,
tendremos que completar el método que maneja el evento de este botón y que se llama
btnVerPersonaActionPerformed(java.awt.event.ActionEvent evt)
. ¿Para qué sirve? Bueno, si nos fijamos en el runtime del ejemplo anterior, lo que hará será
mostrar los datos de la persona, para lo cual escribimos una sola línea
JOptionPane.showMessageDialog(null,persona.mostrarDatos(),"Datos de un PERSONA",1 ) ;
Pr
of
.L
9) Ahora hay que compilar el programa y ejecutarlo. En cierto modo tenemos dos runtime, el
habitual con el método main, que no vamos a ejecutar y lo vamos a borrar ya que no lo vamos
a usar; y el otro, que maneja controles visuales: gesPersona con el botón derecho del ratón
sobre este archivo se ejecuta con Run File. Después tendremos otros tres runtime.
Formulario gesAlumnos: primero configuraremos el entorno visual o de diseño y luego
agregaremos el código fuente.
Tenemos que hacer algo similar, sólo acordarnos que la clase Alumno es una clase hija de Persona.
En el caso anterior, hemos usado la clase Persona, pero no hemos tocado una línea del programa
original. Ahora será también algo parecido.
Pasos:
ttr
y
1) crear los controles visuales que necesitamos (son 4 cuadros de texto y 4 rótulos o labels más dos
botones)
2) cambiar los nombres de variable de los cuadros de texto y de los botones, de modo tal que sean
coherentes con la funcionalidad de cada cosa:
Nombres de variables
(objeto/propiedades/codigo)
Objeto
dni
ape
nom
leg
btnCrearAlumno
btnVerAlumno
sa
n
jTextField para el documento
JTextField para el apellido
jTextField para el nombre
jTextField para el legajo
jButton para crear el alumno
jButton para ver el alumno
Le
Formulario gesAlumnos
us
3) Agregar al final del programa una variable que represente al alumno y los métodos que permiten
convertir los tipos de datos del formulario a los tipos de datos de la clase Alumno:
No
209 Alumno alumno=null;
210 //métodos para manejar la conversión de los JTextField a String e int
211 private String convertirCadena(JTextField jf){
212
return new String(jf.getText());
213 }
214
215 private int convertirEntero(JTextField jf){
216
return Integer.parseInt(jf.getText());
217 }
a
4) Habilitar los métodos de evento de los botones y escribir el siguiente código:
Para el btnCrearAlumno:
au
r
if(this.dni.getText().equals("") || this.ape.getText().equals("") || this.nom.getText().equals("") ||
this.leg.equals(""))
JOptionPane.showMessageDialog(null,"Debe completar todos los datos solicitados","Error",1);
else
alumno = new Alumno(convertirEntero(this.dni),convertirCadena(this.ape),
convertirCadena(this.nom),convertirEntero(this.leg));
Para el btnVerAlumno:
Pr
of
.L
JOptionPane.showMessageDialog(null,alumno.mostrarDatos(),"Datos de un ALUMNO",1 ) ;