[ gagacar @ 26.08.2014. 12:02 ] @
Potrebna mi je pomoć oko sortiranja jTable kao integer ili double...

Imam sledeći kod:

Code:


.......


            String sql = "SELECT id, sifra, naziv, cena, opis FROM Tabela WHERE id_kategorije = ?";
            pst = conn.prepareStatement(sql);
            pst.setString(1, neka_vrednost_kategorije);           
            rs = pst.executeQuery();


            Tbl_Roba.setModel(DbUtils.resultSetToTableModel(rs));


            TableColumn col0 = Tbl_Roba.getColumnModel().getColumn(0); /* Integer */
            col0.setPreferredWidth(10);
            TableColumn col1 = Tbl_Roba.getColumnModel().getColumn(1); /* String */
            col1.setPreferredWidth(10);
            TableColumn col2 = Tbl_Roba.getColumnModel().getColumn(2); /* String */
            col2.setPreferredWidth(300);
            TableColumn col3 = Tbl_Roba.getColumnModel().getColumn(3); /* Double */
            col3.setPreferredWidth(20);
            TableColumn col4 = Tbl_Roba.getColumnModel().getColumn(4); /* String */
            col4.setPreferredWidth(20);

            Tbl_Roba.getColumnClass(0).cast(Integer.class); /* Ovo sam negde našao na netu, ali izgleda da ne radi */
            Tbl_Roba.getColumnClass(3).cast(Double.class);
            Tbl_Roba.setAutoCreateRowSorter(true);


........



DbUtils ima sledeci kod

Code:


import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;


public class DbUtils {
    public static TableModel resultSetToTableModel(ResultSet rs) {
        try {
            ResultSetMetaData metaData = rs.getMetaData();
            int numberOfColumns = metaData.getColumnCount();
            Vector columnNames = new Vector();

            // Get the column names
            for (int column = 0; column < numberOfColumns; column++) {
                columnNames.addElement(metaData.getColumnLabel(column + 1));
            }

            // Get all rows.
            Vector rows = new Vector();

            while (rs.next()) {
                Vector newRow = new Vector();

                for (int i = 1; i <=  numberOfColumns; i++) {
                    
                        newRow.addElement(rs.getObject(i));
                   
                }

                rows.addElement(newRow);
            }

            return new DefaultTableModel(rows, columnNames);
        } catch (Exception e) {
            e.printStackTrace();

            return null;
        }
    }
   
}



Ovo sve radi, ali mi sve kolone sortira kao string, pa imam i prvoj koloni gde je id tipa integer, sledeću kombinaciju:

1
100
10000
2
200
20000
itd....

Kako da podesim da mi se sortiraju određene kolone kao integer ili double.
Da li može da se napravi neka kombinacija bez promene DbUtils, jer mi je u svakoj narednoj tabeli drugačiji raspored kolona za integer, double ili string.

Hvala!