JTable filtern nach einer Spalte

javanoob42

Mitglied
Guten Tag,
ich versuche gerade eine Tabelle nach nur einer Spalte zu filtern. Ich habe es soweit, dass der Benutzer in einem Textfeld den Filtertext eingibt und ihn per Button aktivieren kann. Jedoch soll der Text nur die erste Spalte durchsuchen und anhand dessen alle richtigen Datensätze anzeigen. Es werden jedoch immer alle Spalten durchsucht.

Hier mein aktueller Code:

Java:
TableRowSorter<TableModel> mealsorter = null;
RowFilter <TableModel, Object>mealrowfilter= null;

myPanel(){
   mealmodel = new DefaultTableModel(mealrows, mealcols);
   mealtable.setModel(mealmodel);
   mealtable.getColumnClass(1);
   mealsorter = new TableRowSorter<TableModel>(mealmodel);
   mealtable.setRowSorter(mealsorter);
		
   RowFilter rowFilter = RowFilter.regexFilter(mealfilter.getText(), 0);
   mealsorter.setRowFilter(rowFilter);
		
   mealfilter.addActionListener(this);
   public void actionPerformed(ActionEvent e) {	
		if (e.getSource()==mealfilter){
			String text = mealfiltertext.getText();
	        if (text.length() == 0) {
	        	mealsorter.setRowFilter(null);
	        } else {
	        	mealsorter.setRowFilter(RowFilter.regexFilter(text));
	        }
   }
}

Ich hoffe mir kann dabei jemand einen Tipp geben. Danke im vorraus
 
Hi javanoob42,
ganz simpel 🙂
Java:
sorter.setRowFilter(RowFilter.regexFilter("(?i)" + text, 0,1,2,3,5));
die null, eins, zwei, drei und fünf stehen dabei dafür das Spalte null, eins, zwei, drei und fünf durchsucht werden sollen.
Du kannst das mit beliebigen Zahlen erweitern 🙂

Gruß Simon
 

Neue Themen


Zurück
Oben