Después de un largo periodo de no realizar ninguna publicación, estoy regresando recargado de experiencias y anécdotas sobre algunos proyectos en los que estuve trabajando por mas de 2 años.
Tenemos un jTable con los siguientes datos, extraído de una Base de Datos (MySQL) como veremos a continuación:
En esta ocasión veremos la forma de filtrar datos de un jTable, que estoy usándolo en una aplicacion de gestión de compras, como verán no esta muy desarrollado para este tutorial, debido a que tiene fines académicos.
Tenemos un jTable con los siguientes datos, extraído de una Base de Datos (MySQL) como veremos a continuación:
Los datos que se observan en la tabla en ejecución anterior, se cargan de la tabla productos de la base de datos, pero el método de filtrado funcionaria igual con datos estáticos.
código fuente:
import Datos.ProductosDAO;
import Logica.Productos;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.List;
import javax.swing.RowFilter;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;
public class GUIListaProductos extends javax.swing.JDialog {
//TableModel tblProd;
private TableRowSorter trsfiltro; //creamos el filtro
DefaultTableModel temp;
String filtro;
Productos Pro;
ProductosDAO prodao = new ProductosDAO();
/** Creates new form GUIListaProductos */
public GUIListaProductos(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
CargarTabla();
}
//******************************************//
public void filtro() {
//Obtiene el valor del JTextField para el filtro
filtro = txtBuscarXdesc.getText();
int columna = 3;
trsfiltro.setRowFilter(RowFilter.regexFilter(txtBuscarXdesc.getText(), columna));
}
//******************************************//
public void CargarTabla(){ // Recupera registro de la tabla de la base de datos
temp = (DefaultTableModel)tblProductos.getModel();
int cant, i;
List
//Recorrer el arreglo
for(i=0; i
{
Pro=lstVi.get(i); //Obtiene el Objeto de la Coleccion dado e indice
//llenar las celdas de la Tabla
Object nuevo[]= {temp.getRowCount()+1,"",""};
temp.addRow(nuevo);
temp.setValueAt(Pro.getIdproductos(), i, 1);
temp.setValueAt(Pro.getTipoproducto().getTpDescripcion(), i, 2);
temp.setValueAt(Pro.getDescripcion(), i, 3);
temp.setValueAt(Pro.getMarca(), i, 4);
temp.setValueAt(Pro.getUnidadMedida(), i, 5);
temp.setValueAt(Pro.getCapacidad(), i, 6);
temp.setValueAt(Pro.getPrecioEstimado(), i, 7);
temp.setValueAt(Pro.getStockActual(), i, 8);
temp.setValueAt(Pro.getStockMinimo(), i, 9);
temp.setValueAt(Pro.getStockMaximo();
//Comienza a filtrar desde que digita un caracter
private void txtBuscarXdescKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
txtBuscarXdesc.addKeyListener(new KeyAdapter() {
public void keyReleased(final KeyEvent e) {
filtro();
}
});
trsfiltro = new TableRowSorter(temp);
tblProductos.setRowSorter(trsfiltro);
}