14
Ingeniería de Sistemas y Telemática TEMA: Jtable con base de datos DOCENTE: Marco Aurelio Porro Chulli. INTEGRANTES: Erlin Darwin Herrera Cieza. Yosmer Aguilar Cabrera. CICLO:V Bagua Grande - Utcubamba

Presentación1

Embed Size (px)

Citation preview

Page 1: Presentación1

Ingeniería de Sistemas y TelemáticaTEMA: Jtable con base de datosDOCENTE: Marco Aurelio Porro Chulli.INTEGRANTES: Erlin Darwin Herrera Cieza. Yosmer Aguilar Cabrera.CICLO:V Bagua Grande - Utcubamba

Page 2: Presentación1

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.

Es una clase que me permite organizar una determinada información en tabla, esta difiere de una base de datos normal porque al utilizar Jtable tu puedes visualizar esta tabla, brindándole a el usuario organización de información, oportunidades de editar y cambiar el tamaño de las columna entre otras.

Page 3: Presentación1

TABLE MODEL

TableModel quien controla los datos sí mismos.Tambien es un programa que guarda los datos de la tabla para si mismo, es decir, puede tener la información de la tabla pero estos datos son los visualizados por el computador, es decir, para visualizar una tabla el TABLEMODEL puede tener la información pero sin el Jtable no se puede visualizar para el usuario.

Page 4: Presentación1

EDITABLE O NOY LA INFORMACIÓN, Y LAS COLUMNAS

Existen varias maneras de hacer editable o no las celdas dentro de la tabla, para ver estos comandos tu te puedes dirigir a Dentro de las celdas encontradas en una tabla se puede

permitir al usuario editar o no editar según lo desee el programador, esta

propiedad se puede arreglar desde el table model o directamente y/o desde

el programa.

Jtable te brinda muchas facilidades para poder crear una tabla, y así

mismo de llenarla con la información que desees ( números, letras etc...) por

lo que sencillamente dentro de una tabla esta automáticamente a través

de la información debidamente separada - por ""(comillas) o por ,

(coma) - es capaz de contabilizarlas y al mismo tiempo llenarla con la

información que se le dio

Page 5: Presentación1

LLENAR UN JTABLE CON UNA BASE DE DATOS

Devuelve toda la tabla productopublic static DefaultListModel obtenerCodigos() {DefaultListModel modelo = new DefaultListModel();try {DefaultListModel defaultListModel = new DefaultListModel();int contador=1;String codigo="";ResultSet resultados = conexion.ejecutarConsulta("SELECT * FROM producto");//Este while es quien llega la lista para luego utilizarla llenando el Jtablewhile(resultados.next()){codigo= resultados.getString(1);defaultListModel.addElement(contador+". "+codigo);contador++; }conexion.cerrarConsulta();return defaultListModel;} catch (SQLException ex) {return modelo; } } //aqui se llena el Jtable con lo que retorno lo anteriorthis.listMarcadores.setModel(obtenerCodigos());

Page 6: Presentación1

JTABLE Y DEFAULTTABLEMODEl

JTABLE Y DEFAULTTABLEMODELLa forma más sencilla de usar un JTable y tener toda su funcionalidad es instanciar un DefaultTableModel y meterlo en el JTable

DefaultTableModel modelo = new DefaultTableModel();JTable tabla = new JTable(modelo);

Aunque en realidad esto no es estrictamente necesario, porque un JTable por defecto ya tiene dentro un DefaultTableModel, así que también sería válido esto otro

JTable tabla = new JTable();DefaultTableModelmodelo=(DefaultTableModel)tabla.getModel();

Page 7: Presentación1

AÑADIENDO COLUMNAS

Una vez que tenemos el modelo, de una u otra forma, podemos añadir columnas directamente en el modelo modelomodelo.addColumn("etiqueta columna 1");modelo.addColumn("etiqueta columna 2");

Podemos añadir datos directamente en el modelo, así como borrarlos o modificarlosObject [] fila = new Object[2];fila[0] = "dato columna 1";fila[1] = "dato columna 3";modelo.addRow ( fila ); // Añade una fila al finalmodelo.setValueAt ("nuevo valor", 0, 1); // Cambia el valor de la fila 1, columna 2.modelo.removeRow (0); // Borra la primera fila

Page 8: Presentación1

La forma más sencilla de usar un JTable y tener toda su funcionalidad es instanciar un DefaultTableModel y meterlo en el JTable, en el constructor

JTABLE Y DEFAULTTABLEMODEL

DefaultTableModel modelo = new DefaultTableModel();JTable tabla = new JTable(modelo);

Page 9: Presentación1

Obtener fila y columna del JTable en la que se hace click

tabla.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { int fila = tabla.rowAtPoint(e.getPoint()); int columna = tabla.columnAtPoint(e.getPoint()); if ((fila > -1) && (columna > -1)) System.out.println(modelo.getValueAt(fila,columna)); } });

A veces nos interesa seleccionar una fila del JTable para hacer algo con ella (sacar un menú, recoger datos para mostrarlos en otro sitio, etc).Una forma de hacerlo es añadiendo un MouseListener al JTable, de esta manera

Page 10: Presentación1

Hacer que una celda del JTable no sea editable

La forma de decidir qué celdas son o no editables es hacer nuestro propio modelo de datos, nuestro TableModel. La forma sencilla de hacerlo es heredar de DefaultTableModel y redefinir el método isCellEditable() para que sirva a nuestros propósitos

public class MiModelo extends DefaultTableModel{ public boolean isCellEditable (int row, int column) { // Aquí devolvemos true o false según queramos que una celda // identificada por fila,columna (row,column), sea o no editable if (column == 3) return true; return false; }}

Page 11: Presentación1

CAMBIAR EL TIPO DE DATO CON DEFAULTTABLEMODEL

Para modificar esto, tenemos que crearnos nuestro propio modelo de Datos. La forma más sencilla es heredar de DefaultTableModel y redefinir el método getColumnClass().

public class MiModelo extends DefaultTableModel{ /** Primera columna Boolean, segunda Integer y el resto Object */ public Class getColumnClass(int columna) { if (columna == 0) return Boolean.class; if (columna == 1) return Integer.class; return Object.class; }}

Page 12: Presentación1

HACER VISIBLE UNA FILA CONCRETA DEL JTABLE DENTRO DE UN JSCROOLPANE

Para que un JTable tenga barras de scroll y tenga una "cabecera" con las etiquetas de las columnas, es necesario meterla en un JScrollPane. Esto se puede hacer de dos formas.

JTable tabla = new JTable();JScrollPane scroll = new JScrollPane(tabla);

o bien

JTable tabla = new JTable();JScrollPane scroll = new JScrollPane();scroll.setViewportView(tabla);

Page 13: Presentación1

class MiModelo implements TableModel{ public void addTableModelListener (TableModelListener l) {...} public Class getColumnClass (int columIndex) {...} public int getColumnCount() {...} public String getColumnName (int columnIndex) {...} public int getRowCount() {...} public Object getValueAt (int rowIndex, int columnIndex) {...} public boolean isCellEditable (int rowIndex, int columnIndex) {...} public void removeTableModelListener (TableModelListener l) {...} public void setValueAt (Object aValue, int rowIndex, int columnIndex)}

Una clase que implemente un TableModel debe redefinir los siguientes métodos:

Page 14: Presentación1

HAY BÁSICAMENTE TRES TIPOS DE MÉTODOS:

•Métodos para manejo de suscriptores al modelo. Un suscriptor es cualquier clase que quiera enterarse de cambios en los datos del modelo. El JTable es un ejemplo claro. El JTable se suscribe a cambios de datos en el modelo y de esta forma, en cuanto cambiemos datos en el modelo, el JTable se entera y se repinta automáticamente la pantalla. En este grupo están los métodos addTableModelListener() y removeTableModelListener()

•Métodos para manejo de datos. Permiten obtener y cambiar datos dentro de la tabla. Son los métodos getValueAt() y setValueAt().

•El resto son métodos para obtener información de la tabla en sí misma, como número de filas, número de columnas, si una fila-columna es o no editable, nombre de la columna, etc.