Download Swing
Document related concepts
no text concepts found
Transcript
SWING Universidad Nacional de Jujuy Analista Programador Universitario Año 2010 JTP: Jorge R. Mendoza Jframe y JDialog Los dos tipos de ventanas principales que tenemos en java son JFrame y JDialog. Hay varias diferencias entre ellas y en función de estas diferencias vamos a ver para qué sirven: Jframe y JDialog Si instanciamos un JFrame, en la barra de abajo de windows (creo que se llama "barra de herramientas") nos aparece un nuevo "botoncito" correspondiente a nuestra aplicación. Si instanciamos un Jdialog Un JDialog admite otra ventana (JFrame o JDialog) como padre en el constructor. JFrame no admite padres. Un JDialog puede ser modal, un JFrame no. Todo esto nos indica lo siguiente: Un JFrame debe ser la ventana principal de nuestra aplicación y sólo debe haber una. Las ventanas secundarias de nuestra aplicación deben ser JDialog. Jframe y JDialog Un JDialog puede ser modal, pasándole un true en el constructor en el sitio adecuado o haciéndolo modal con el métodosetModal(). Si hacemos un JDialog modal, todas las demás ventanas se deshabilitarán hasta que el usuario de nuestro programa cierre el JDialog. Si quieres es que se oculte la ventana pero no se finalice el programa haces un dispose(); Si quieres que finalice la aplicacion tienes que hacer un System.exit(0) JOptionPane La clase JOptionPane de java tiene métodos: showMessageDialog (), showInputDialog() Estos métodos mostarán una ventana modal que pide al usuario una confirmación, que le pide un dato o le muestra un mensaje. JOptionPane JOptionPane.showInputDialog() String seleccion = JOptionPane.showInputDialog( unComponentePadre, "Input dialog", JOptionPane.QUESTION_MESSAGE); // el icono sera un iterrogante System.out.println("El usuario ha escrito "+seleccion); String idBusqueda=JOptionPane.showInputDialog(this, "Busqueda", "Ingrese un Id de Cliente", JOptionPane.OK_CANCEL_OPTION); JOptionPane JOptionPane.showMessageDialog() JOptionPane.showMessageDialog( componentePadre, "Un aviso puñetero"); System.out.println("ya estas avisado"); Creando la clase JFrame Menu Preparando el menu Llamando a una ventana de operacion Programar el evento actionPerformed del Menu: PARA MOSTRAR UNA VENTANA JDIALOG: El constructor del JDialog recibe dos argumentos: (this,true) que indican que el menu Jframe será padre del Jdialog que se llama y se indica que el comportamiento será modal. Creando una ventana de Operación Crear JDialog Creando una ventana de Operación Agregando JTexfield, JLabel y JButton jTextField Metodos Importantes: ◦ txtId.getText();//Retorna un valor String desde el control ◦ txtId.setText(“texto”);//Asigna un valor String al control Como retorna un String para asignar a un objeto conatributos integer y double se debe convertir de String a esos tipos: ◦ Integer.parseInt(this.txtId.getText()) ◦ Double.parseDouble(this.txtSueldo.getText()) jButton Evento: actionPerformed responde a click del mouse y a la tecla Enter al ganar el foco. JTable Un JTable es un componente visual de Java que nos permite dibujar una tabla, de forma que en cada fila/columna de la tabla podamos poner el dato que queramos; un nombre, un apellido, una edad, un número, etc. Jtable Por un lado tenemos el JTable, que es lo que vemos. Por otro lado tenemos los datos, que es lo que queremos pintar en el JTable. Los datos pueden guardarse en cualquier clase que implemente TableModel. Java nos ofrece DefaultTableModel, una clase que implementa TableModel y nos permite añadir, modificar y borrar esos datos. La forma sencilla de juntar todo esto es DefaultTableModelo datos = new DefaultTableModel(); JTable tabla = new JTable(datos); Ahora podemos añadir columnas a nuestros datos llamando a: datos.addColumn ("Nombre columna"); Y podemos añadir, borrar y modificar: datos.addRow ( arrayConLosDatosParaUnaFila ); datos.removeRow ( fila ); datos.setValueAt (dato, fila, columna); jTable: Hacer el modelo Jtable: El modelo Carga de un JTable private void cargarTabla(){ DefaultTableModel modelo = (DefaultTableModel)this.jTable1.getModel(); //Obtenemos el modelo armado con NETBEANS String datos[] = new String[8]; //Indica el numero de columnas Iterator<Cliente> it = this.listaCliente.iterator(); while(it.hasNext()) { Cliente c = it.next(); datos[0] = String.valueOf(c.getId()); datos[1] = c.getApellido(); datos[2] = c.getNombres(); datos[3] = c.getCuit(); datos[4] = c.getDomicilio(); datos[5] = c.getTelefonoCasa(); datos[6] = c.getTelefonoMovil(); datos[6] = c.getEmail(); modelo.addRow(datos); } } this.dispose(); //cierra la ventana ventana.setVisible(true);//muestra la ventana