This method selects the first entry in the JTable table that start with the text that is entered in the filter-textfield textfield . - Java Swing

Java examples for Swing:JTable Filter

Description

This method selects the first entry in the JTable table that start with the text that is entered in the filter-textfield textfield .

Demo Code

/*/*  w w  w  . java  2s.  c o  m*/
 * Zettelkasten - nach Luhmann
 ** Copyright (C) 2001-2014 by Daniel L?decke (http://www.danielluedecke.de)
 * 
 * Homepage: http://zettelkasten.danielluedecke.de
 * 
 * 
 * This program is free software; you can redistribute it and/or modify it under the terms of the
 * GNU General Public License as published by the Free Software Foundation; either version 3 of 
 * the License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License along with this program;
 * if not, see <http://www.gnu.org/licenses/>.
 * 
 * 
 * Dieses Programm ist freie Software. Sie k?nnen es unter den Bedingungen der GNU
 * General Public License, wie von der Free Software Foundation ver?ffentlicht, weitergeben
 * und/oder modifizieren, entweder gem?? Version 3 der Lizenz oder (wenn Sie m?chten)
 * jeder sp?teren Version.
 * 
 * Die Ver?ffentlichung dieses Programms erfolgt in der Hoffnung, da? es Ihnen von Nutzen sein 
 * wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder 
 * der VERWENDBARKEIT F?R EINEN BESTIMMTEN ZWECK. Details finden Sie in der 
 * GNU General Public License.
 * 
 * Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem Programm 
 * erhalten haben. Falls nicht, siehe <http://www.gnu.org/licenses/>.
 */
//package com.java2s;

import javax.swing.JTable;

public class Main {
    /**
     * This method selects the first entry in the JTable {@code table} that start with the
     * text that is entered in the filter-textfield {@code textfield}.
     *
     * @param table the jTable where the item should be selected
     * @param textfield the related filtertextfield that contains the user-input
     * @param column the column where the filtering-comparison should be applied to. in most cases, the relevant
     * information (i.e. the string/text) is in column 0, but sometimes also in column 1
     */
    public static void selectByTyping(JTable table,
            javax.swing.JTextField textfield, int column) {
        String text = textfield.getText().toLowerCase();
        for (int cnt = 0; cnt < table.getRowCount(); cnt++) {
            String val = table.getValueAt(cnt, column).toString();
            if (val.toLowerCase().startsWith(text)) {
                table.getSelectionModel().setSelectionInterval(cnt, cnt);
                table.scrollRectToVisible(table.getCellRect(cnt, column,
                        false));
                // and leave method
                return;
            }
        }
    }
}

Related Tutorials