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