Clicco su colonna di JTable e succede qualcosa

di il
1 risposte

Clicco su colonna di JTable e succede qualcosa

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?

1 Risposte

  • Re: Clicco su colonna di JTable e succede qualcosa

    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.
Devi accedere o registrarti per scrivere nel forum
1 risposte