p0ll0_ ha scritto:
Vorrei fare in modo che cliccando su una colonna (tipo la colonna nome) le righe si mettono in ordine per nome (come con windows) per esempio... come posso fare?
Per gestire i click sulle
intestazioni (non le celle) bisogna registrare un MouseListener sul JTableHeader, ovvero:
tuatabella.getTableHeader().addMouseListener( ........ );
Ma NON basta.Il JTableHeader rappresenta logicamente e visivamente la intestazione di tutte le colonne. Ad ogni evento di pressed/click/release devi stabilire in quale colonna di intestazione è "caduto" il click. Prendi il punto del click (dal getPoint() di MouseEvent) e passi il Point al columnAtPoint(Point) di JTableHeader che ti dice quale è la colonna "logica" (0, 1, 2, ecc...) interessata dall'evento. Attenzione: questa è la colonna nella vista, NON è detto che corrisponda a quella del model (perché per default è attivo il riordinamento delle colonne che l'utente può fare con il mouse).
Riguardo l'ordinamento delle righe ... è ancora tutto un altro paio di maniche! Leggi:
How to Use Tables in particolare la sezione
Sorting and Filtering
Comunque come dice lì, il minimo fattibile è settare a true il autoCreateRowSorter e si ha "di serie" l'ordinamento tramite click sulle intestazioni. MA ... bisogna vedere cosa espone il table model come tipo della colonna.