miércoles, 15 de agosto de 2012

JTable con PopupMenu en la cabecera, ordenar filas Ascendente y Descendente en java


A medida que trabajamos con el JTable nos encontramos con muchas propiedades que tiene esta herramienta para mi en lo personal es una de las herramientas mas complejas y a vez la mas utilizada en manejo de datos, hoy les presento un ejemplo de como ordernas las filas en forma ascendente y descendente conRowSorter ySortOrder para colocar el popup utilizamos elJTableHeader.

RowSorter :proporciona la base para ordenar y filtrar.
SortOder :es una enumeración de los ordenamientos posibles de clasificación
JTableHeader :Este es el objeto que gestiona la cabecera de la JTable

esta es la forma de como agregamos y declaramos los metodos.

 table = new JTable(modelo);
table.setRowSorter(new TableRowSorter(modelo) {
@Override public void toggleSortOrder(int column) {}
});
//0 es la primera columna el cual agrego el popup ala cabecera en forma desendente
table.getRowSorter().setSortKeys(Arrays.asList(new RowSorter.SortKey(0, SortOrder.DESCENDING)));

JPopupMenu pop = new TablePopupMenu();
//cabecera
final JTableHeader header = table.getTableHeader();
header.setComponentPopupMenu(pop);
pop.addPopupMenuListener(new PopupMenuListener() {
@Override public void popupMenuCanceled(PopupMenuEvent e) {}
@Override public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {

header.setDraggedColumn(null);
header.repaint();
}
@Override public void popupMenuWillBecomeVisible(PopupMenuEvent e) {}
});

TablePopupMenu es una clase interna popupmenu, la cual añado a la cabecera de la columna 0 es decir a la primera columna de la Tabla con JTableHeader atravez delmétodosetComponentPopupMenu.

DESCARGAR




No hay comentarios:

Publicar un comentario