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 ) ;