SWT-Tabelle Sortieren durch anklicken der Spaltenüberschrift
In swt Tabelle - Sortieren der Werke für Streicher wie zu tun, die Sortierung für Integer, Double und Date-Werte. Und das funktioniert nur für String-aufsteigend. Kann jemand empfehlen, einen besseren Weg, es zu tun.
TableItem item = new TableItem(table, SWT.NONE);
item.setText(new String[] { "1", "v", "1.1", "20/03/2013" });
item = new TableItem(table, SWT.NONE);
item.setText(new String[] { "10", "z", "1.5", "20/04/2013" });
item = new TableItem(table, SWT.NONE);
item.setText(new String[] { "3", "a", "1.3", "30/01/2013" });
Listener sortListener = new Listener() {
public void handleEvent(Event e) {
TableItem[] items = table.getItems();
Collator collator = Collator.getInstance(Locale.getDefault());
TableColumn column = (TableColumn) e.widget;
int index = column == tblclmnNumber ? 0 : 1;
for (int i = 1; i < items.length; i++) {
String value1 = items[i].getText(index);
for (int j = 0; j < i; j++) {
String value2 = items[j].getText(index);
if (collator.compare(value1, value2) < 0) {
String[] values = { items[i].getText(0),
items[i].getText(1), items[i].getText(2),
items[i].getText(3) };
items[i].dispose();
TableItem item = new TableItem(table, SWT.NONE, j);
item.setText(values);
items = table.getItems();
break;
}
}
}
table.setSortColumn(column);
}
};
tblclmnNumber.addListener(SWT.Selection, sortListener);
tblclmnName.addListener(SWT.Selection, sortListener);
tblclmnDeci.addListener(SWT.Selection, sortListener);
tblclmnDate.addListener(SWT.Selection, sortListener);
table.setSortColumn(tblclmnNumber);
table.setSortDirection(SWT.UP);
InformationsquelleAutor Venkatachalam Subramanian | 2013-03-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich geändert, die SWT-snippet mit dem Sortieren, um zu zeigen, wie möglich ist Sortieren von Spalten mit unterschiedlichen Datentypen..
Zusammenfassen es ist völlig bis zu Programmierer wie werden die Spalten in der Tabelle sortiert, da die Tabelle nur immer will, array von String für eine Zeile, was auch immer Sie bedeuten..
InformationsquelleAutor Sorceror
Können Sie werfen einen Komparator für die Spalte als Daten an die Spalte, und verwenden Sie dann zu Sortieren. Dies hält die Sortier-Logik näher auf die definition der Spalte selbst.
InformationsquelleAutor pretzalcoatl