[ 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! |