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
