Hi, ich habe probleme eine JTable mit Werten aus einer Datenbank zu Sortieren. Text geht, aber Zahlen leider nicht.
Sie werden so sortiert "1,10,2,20"
Hier ist der Aufbaue der Tabelle:
Das ist jetzt der Ursprungscode. Ich habe schon viel geändert und rumprobiert, aber es einfach nicht geschafft. Der wert Preis ist eine Kommazahl btw, also wenn das machbar ist, beides sortierbar zu machen, wäre es wunderbar
Sie werden so sortiert "1,10,2,20"
Hier ist der Aufbaue der Tabelle:
Java:
JTable jt_tabelle;
DefaultTableModel tabelle;
jt_tabelle = new JTable(tabelle);
Java:
tabelle.setDefaultRenderer(Object.class, new MyRenderer());
try{
Connection con = DriverManager.getConnection("jdbc:hsqldb:file:Datenbank/....; shutdown=true", "ROOT", "" );
Statement stmt = con.createStatement();
ResultSet rslt = stmt.executeQuery("select ID,Name,Preis fromTABELLE");
tabelle = new DefaultTableModel(){
public boolean isCellEditable(int row, int column){
return false;
}
};
Vector<String> clmHeader = new Vector<String>();
Vector<Object> dataVector = new Vector<Object>();
ResultSetMetaData rsmd = rslt.getMetaData();
int clmCnt = rsmd.getColumnCount();
for(int i = 1; i <= clmCnt;i++){
clmHeader.addElement(rsmd.getColumnName(i));
}
while(rslt.next()){
Vector<String> rowVector = new Vector<String>();
for(int i = 1; i <= clmCnt; i++){
rowVector.addElement(rslt.getString(i));
}
dataVector.addElement(rowVector);
}
tabelle.setDataVector(dataVector,clmHeader);
stmt.close();
con.close();
}
catch (Exception f){}
jt_tabelle.setModel(tabelle);
jt_tabelle.setAutoCreateRowSorter(true);
jt_tabelle.getRowSorter().toggleSortOrder(1);
Das ist jetzt der Ursprungscode. Ich habe schon viel geändert und rumprobiert, aber es einfach nicht geschafft. Der wert Preis ist eine Kommazahl btw, also wenn das machbar ist, beides sortierbar zu machen, wäre es wunderbar