简体   繁体   中英

Sorting integer in jtable

when i click the 'Price' radiobutton it sorts the Price Row but in this order

  • 1
  • 11
  • 12
  • 13
  • 2
  • 21
  • 200
  • 3
  • 32
  • 300

how can i fix it? im still new in java. please help me. thanks. :D

rdbtnNewRadioButton_2.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            DefaultRowSorter sorter = ((DefaultRowSorter)table.getRowSorter());
            List <RowSorter.SortKey> sortKeys = new ArrayList<RowSorter.SortKey>();
            sortKeys.add(new RowSorter.SortKey(4, SortOrder.ASCENDING));
            sorter.setSortKeys(sortKeys); 

        }
    });
  • override getColumnClass in your XxxTableModel , default class is String , the your result from RowSorter is correct

  • use Integer.Class

Write your own comparator and then

sorter.setComparator(int column, Comparator<?> comparator)

refer this Why does my JTable sort an integer column incorrectly?

Convert your data column to an integer type in order to have the correct order.

SELECT
    ...,
    CAST(YourColumnName as INT) as YourColumnName
    ...
FROM...

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM