Upload
erlin-darwin-herrera-cieza
View
13
Download
0
Embed Size (px)
Citation preview
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
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.
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.
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
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());
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();
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
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);
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
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; }}
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; }}
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);
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:
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.