setRowFilter sortieren nach 2 Kriterien

  • Themenstarter Themenstarter Gelöschtes Mitglied 17508
  • Beginndatum Beginndatum
G

Gelöschtes Mitglied 17508

Gast
Hallo Forum!

Ich habe eine Abfrage, wo man den Filter in einer Tabelle einstellen kann ( zB: Währung, linke Spalte ) sowie das zu suchende Kriterium ( zB: a% ).
Jedoch ist es ziemlich egal, was ich beim Filter auswähle, er sucht ständig nur nach dem Kriterium.
Der Code dazu sieht so aus ( Auszug ):

Code:
private TableSortController<RefreshableResult> sorter;

protected void setFilter(String filterKey, String filterValueLike) {	// FIXME use filterKey? How?
		if(this.sorter != null)
		this.sorter.setRowFilter(RowFilter.regexFilter("(?i)" + filterValueLike.replace(".", "\\.").replace("%", ".*").replace("(", "\\(").replace(")", "\\)")));
	}

Wie kann ich anhand des Filters auch suchen?
Wenn mir jemand vll weiterhelfen könnte!

Danke Euch vielmals!

mfG
 
Es ist so, dass ich im filterKey die Select Abfrage habe.
Nun weiss ich nicht, wie ich sie mit Object sorter zusammenbringen kann, um die gewünschte Ausgabe zu erhalten.

Ich hoffe es ist jetzt verständlicher!

Danke Dir vielmals!

mfG
 
Noch nicht so ganz. Wenn man in http://download.oracle.com/javase/t...DemoProject/src/components/TableSortDemo.java den folgenden Block einfügt...
Java:
        TableRowSorter<TableModel> sorter
            = new TableRowSorter<TableModel>(table.getModel());
        table.setRowSorter(sorter);

        List <RowSorter.SortKey> sortKeys
            = new ArrayList<RowSorter.SortKey>();
        sortKeys.add(new RowSorter.SortKey(1, SortOrder.ASCENDING));
        sortKeys.add(new RowSorter.SortKey(0, SortOrder.ASCENDING));
        sorter.setSortKeys(sortKeys);

        RowFilter<Object,Object> filter = new RowFilter<Object,Object>() {
           public boolean include(Entry<? extends Object, ? extends Object> entry)
           {
               return entry.getStringValue(1).startsWith("B");
           }
         };
        sorter.setRowFilter(filter);
sortiert und filtert er, wie man es erwarten würde.

(Ich hätte auch den ganzen Code posten können, so dass du es einfach hättest rauskopieren, compilieren und starten können ... habe ich aber nicht getan... (*zaunpfahl wieder einpack*))
 
Danke Dir vielmals für deine Hilfe!

Habe es nun hinbekommen auf folgende Art und Weise:

Code:
int columnIndex = this.data.indexOfColumnKey(filterKey);
this.sorter.setRowFilter(RowFilter.regexFilter("(?i)" + filterValueLike.replace(".", "\\.").replace("%", ".*").replace("(", "\\(").replace(")", "\\)"), columnIndex));

Nun ist es mir möglich Anhand des Suchkriteriums und der Spalte in der Tabelle zu suchen!
 

Zurück
Oben