1. “AÑO DEL BUEN SERVICIO AL CIUDADANO”
TÍTULO : Control JTable con Base de Datos
DOENTE : Marco A. Porro Chulli
AUTORES:
Correa Berru Yanella.
Chuquihuanga Guerrero Lenabith.
Lastra Lujan Ruth Gavi.
AMAZONAS_ BAGUA GRANDE
2017
2. CONTROL JTABLE CON BASE DE DATOS
Es un componente swing java que nos permite mostrar datos
en una tabla de una base de datos, sin embargo a diferencia de
otros componentes similares de otros lenguajes de
programación (Delphi por ejemplo), java no nos permite
gestionar directamente los datos. 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.
JTable
3. PROPIEDADES
Llenar un JTable con datos de una base de datos Sql Server.
Para poder hacer esto, primero ya debes de haber importado
tu librería de Sql Server conector y ya tienes tu clase de conexión,
Después insertamos un JTable, del lado derecho tenemos el Swing
Controls, haz clic sobre Table y después haz clic sobre tu JFrame
para que se inserte el JTable, después, en el Panel de Properties,
busca la opción model y haz clic en el botón de los 3 puntos.
Después en property using, eliges la opción Custom code…
Después le damos un nombre a nuestro modelo de nuestra tabla, yo
le pondré modeloTabla
4.
5. TABLE MODEL
TableModel lo que hace es
predeterminar ciertas características
para el Jtable es decir que tu puedes
poner ciertos parámetros dentro de
un TableModel y así no tener que
determinarlos siempre.
6. Ejemplo private void mostrarDatosConTableModel() {
DefaultTableModel model;
model = new DefaultTableModel();// definimos el objeto tableModel
miTabla2 = new JTable();// creamos la instancia de la tabla
miTabla2.setModel(model);
model.addColumn("Nº Documento");
model.addColumn("Nombre");
model.addColumn("Edad");
model.addColumn("Profesión");
model.addColumn("Telefono");
miTabla2.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
miTabla2.getTableHeader().setReorderingAllowed(false);
PersonaDao miPersonaDao2 = new PersonaDao();
/**
* enviamos el objeto TableModel, como mandamos el objeto podemos
* manipularlo desde el metodo
*/
miPersonaDao2.buscarUsuariosConTableModel(model);
miBarra2.setViewportView(miTabla2);
}
7. EJEMPLO
import java.awt.Component;
import javax.swing.AbstractCellEditor;
import javax.swing.JComponent;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.TableCellEditor;
/**
* @web http://www.jc-mouse.net
* @author Mouse
*/
public
class MyTableCellEditor extends AbstractCellEditor implements
TableCellEditor{
private database db;
private String OldValue=""; //Valor antiguo de la celda
private String NewValue=""; //valor nuevo de la celda
private String NameColum="";//nombre de la columna
private String ID="";// Llave del registro
private JComponent component = new JTextField();
public MyTableCellEditor(database db, String NameColumn)
{
this.db = db;
this.NameColum = NameColumn;
}
public Object getCellEditorValue() {
return ((JTextField)component).getText();
}
public Component getTableCellEditorComponent(JTable table
, Object value, booleanisSelected, int row, int column) {
OldValue = value.toString();//Toma valor de celda antes
de cualquier modificación
ID = table.getValueAt(row,0).toString();//obtiene el ID
unico del registro
((JTextField)component).setText(value.toString());//coloca
valor de la celda al JTextField
return component;
}
8. @Override
public boolean stopCellEditing() {
NewValue = (String)getCellEditorValue();//Captura nuevo valor de la celda
//Compara valores, si no son iguales, debe actualizar registro
if( !NewValue.equals(OldValue))
{ //Realiza la actualizacion
if( !db.update( NameColum+"='"+NewValue+"' ", ID ) )
{ //Si existe algun error al actualizar, escribe viejo valor en la celda
JOptionPane.showMessageDialog(null,"Error: No se puede actualizar");
((JTextField)component).setText(OldValue);
}
}
return super.stopCellEditing();
}
}
9. RECOMENDACIONES
Para crear el JTable es recomendable crearlo de la
vista de diseño de Java, ya que así se sitúa
directamente la tabla donde nosotros queramos sin
tener que situarla a través de código. Recordar meter
el JTable en un JScrollPane para que haya un scroll
en caso de que los resultados sean más de los que
se pueden ver en la tabla.
El muy importante tener en cuenta la importación de
la librería JDBC y la conexión para si poder mostrar
los datos.
10. CONCLUSIONES
JTable es un componente swing java
que nos permite mostrar datos en una
tabla de una base de datos.
En un JTable nos permite registrar
información si deseamos.