Visualizzazione dei risultati da 1 a 10 su 16

Visualizzazione discussione

  1. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Aggiungo una cosa, ho riletto adesso il tutorial ufficiale (Sorting and Filtering di How to Use Tables) che effettivamente è un pochino più chiaro rispetto al javadoc di TableRowSorter.

    Se si vuole che il sorting applichi la regola 3: "If the column class returned by TableModel.getColumnClass implements Comparable, use a comparator that sorts the strings based on the values returned by Comparable.compareTo."

    è necessario non solo che gli oggetti siano effettivamente degli Integer ma anche che il Class fornito dal model per quella colonna sia Integer.class. Perché Integer implementa Comparable.

    Se si usa DefaultTableModel o si estende AbstractTableModel senza ridefinire getColumnClass (o comunque rifacendo restituire Object.class per quella colonna) e non si fa altro di particolare, si cade nella regola 5: "If none of the previous rules apply, use a comparator that invokes toString on the column data and sorts the resulting strings based on the current locale.". Object infatti non è ovviamente Comparable.

    Quindi anche avendo oggetti Integer, farebbe invocare toString() e ordinerebbe le stringhe. Ovviamente non è questo che serve per l'ordinamento numerico.


    P.S. avere il Integer.class per la colonna ha anche un altro risvolto (positivo o negativo in base ai gusti e necessità): viene scelto un renderer predefinito specifico per i numeri che li tiene allineati a destra.
    Ultima modifica di andbin; 24-09-2014 a 23:32
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.