Hallo ich habe eine Fragen zum Sortieren von Jtable.
Ich habe eine Tabelle, in der sich verschiedene Gruppenergebnisse unsortiert befinden. (siehe Anhang)
Ich muss aber nur immer die Zeilen der jeweiligen Gruppe nach den meisten Punkten und der höchsten Differenz sortieren.
wie mache ich das am besten.
Ich habe probiert, die einzelnen Zeilen in eine andere Tabelle zu kopieren und dort zu sortieren.(siehe Anhang) das hat geklappt. Aber beim zurückschreiben hat sich nichts geändert, da sich die Tabelle glaube ich beim sortieren den Index der Zeile merkt, aber nicht mit umsortiert.
Wie könnte ich das am besten lösen?
Vielen Dank für die Hilfe im Voraus
Ich habe eine Tabelle, in der sich verschiedene Gruppenergebnisse unsortiert befinden. (siehe Anhang)
Ich muss aber nur immer die Zeilen der jeweiligen Gruppe nach den meisten Punkten und der höchsten Differenz sortieren.
wie mache ich das am besten.
Ich habe probiert, die einzelnen Zeilen in eine andere Tabelle zu kopieren und dort zu sortieren.(siehe Anhang) das hat geklappt. Aber beim zurückschreiben hat sich nichts geändert, da sich die Tabelle glaube ich beim sortieren den Index der Zeile merkt, aber nicht mit umsortiert.
Java:
public void tabelleSortieren(){
// Sortiert die Tabelle nach der Spalte der Punkte
TableRowSorter<TableModel> sorter=new TableRowSorter<TableModel>(su.jTvrauswertung.getModel());
su.jTvrauswertung.setRowSorter(sorter);
List<RowSorter.SortKey> sortKeys = new ArrayList<>();
int sortierspaltenzahl=8;
sortKeys.add(new RowSorter.SortKey(6,SortOrder.DESCENDING));
sortKeys.add(new RowSorter.SortKey(5,SortOrder.DESCENDING));
sorter.setSortKeys(sortKeys);
sorter.sort();
//Spalte eintragen
for (int ranking=0;ranking<su.jTvrauswertung.getRowCount();ranking++){
su.jTvrauswertung.setValueAt(ranking+1, ranking, 7);
}
}
public void tabelleBackKopieren(){
if(su.vratable.getRowCount()>0){
for (int i =0; i<zeilenanfangdergruppen[1]-1;i++){
su.gruppentable.setValueAt(su.vratable.getValueAt(i, 0).toString(), i+1, 0);
su.gruppentable.setValueAt(su.vratable.getValueAt(i, 1).toString(), i+1, 1);
su.gruppentable.setValueAt(su.vratable.getValueAt(i, 2).toString(), i+1, 2);
su.gruppentable.setValueAt(su.vratable.getValueAt(i, 3).toString(), i+1, 3);
su.gruppentable.setValueAt(su.vratable.getValueAt(i, 4).toString(), i+1, 4);
su.gruppentable.setValueAt(su.vratable.getValueAt(i, 5).toString(), i+1, 5);
su.gruppentable.setValueAt(su.vratable.getValueAt(i, 6).toString(), i+1, 6);
su.gruppentable.setValueAt(su.vratable.getValueAt(i, 7).toString(), i+1, 7);
}
}
Wie könnte ich das am besten lösen?
Vielen Dank für die Hilfe im Voraus
Anhänge
Zuletzt bearbeitet: