Jtable сортировка целых значений

#java #swing #sorting #jtable #rowsorter

#java #swing #сортировка #jtable #сортировщик строк

Вопрос:

Я создал jtable в Netbeans.

 tableMalzeme.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
    {null, null, null, null},
    {null, null, null, null},
    {null, null, null, null},
    {null, null, null, null}
},
new String [] {
    "Title 1", "Title 2", "Title 3", "Title 4"
}
) {
boolean[] canEdit = new boolean [] {
    false, false, false, false
};

public boolean isCellEditable(int rowIndex, int columnIndex) {
    return canEdit [columnIndex];
}
});
  

Я хочу отсортировать численно.
Значение по умолчанию для «getColumnClass» равно «Object», но я хочу изменить это значение.
Как вы это делаете?

  tableMalzeme.setModel(DbUtils.resultSetToTableModel(resultSet));               
 tableMalzeme.setAutoCreateRowSorter(true);
 tableMalzeme.getColumnClass(0).cast(Integer.class);
  

Комментарии:

1. Не удалось понять смысл вашего вопроса, ИЗВИНИТЕ! Но, не могли бы вы помочь нам лучше понять проблему!!!

2. что вы хотите отсортировать численно?

3. Я хочу отсортировать jtable.

4. «setAutoCreateRowSorter» сортируется как строка, но я хочу сортировать как целое число

Ответ №1:

сортируется как строка, но я хочу сортировать как целое число

Вам нужно:

  1. Добавление Integer объектов в TableModel
  2. Переопределите метод getColumnClass(...) класса для возврата Intgeger.class столбца, содержащего целые числа.

Комментарии:

1. Я не могу переопределить «getColumnClass», используя «DefaultTableModel». Как я могу переопределить его, используя «DefaultTableModel»

2. Не уверен, что вы имеете в виду. Вы знаете, как переопределить метод класса, поскольку вы уже опубликовали код, показывающий, как вы переопределили некоторые методы. Поэтому просто добавьте переопределение для метода getColumnClass(). Вы можете прочитать руководство по Swing или поискать примеры на форуме. Я не знаю структуру вашей таблицы, поэтому не могу сказать вам, как переопределить метод.

Ответ №2:

Попробуйте этот код (надеюсь, это то, что вы ищете):

 (Integer)(tableMalzeme.getColumnClass(0));
  

Комментарии:

1. не уверен, куда вы хотели бы добавить эту строку — не могу придумать подходящее место (сама модель должна определять ее типы)