This method retrieves the key-code keyCode of a released key in the JTable table and checks whether this key was a navigation key (i.e. - Java Swing

Java examples for Swing:JTable

Description

This method retrieves the key-code keyCode of a released key in the JTable table and checks whether this key was a navigation key (i.e.

Demo Code

/*/*from   w w  w.  j  a  v  a  2  s .  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 java.awt.event.KeyEvent;

import javax.swing.JTable;

public class Main {
    /**
     * This method retrieves the key-code {@code keyCode}?of a released key in the
     * JTable {@code table} and checks whether this key was a navigation key (i.e.
     * cursor up/down/left/right or home/end). If so, the method tries to select the next
     * related entry of that JTable, according to the pressed key.<br><br>
     * Furthermore, the related content is made visible (scroll rect to visible or ensure
     * index is visible).
     *
     * @param table a reference to the JTable where the related key was released
     * @param keyCode the keycode of the released key
     */
    public static void navigateThroughList(JTable table, int keyCode) {
        if (KeyEvent.VK_LEFT == keyCode || KeyEvent.VK_RIGHT == keyCode) {
            return;
        }
        int selectedRow = table.getSelectedRow();
        if (-1 == selectedRow) {
            selectedRow = 0;
        }
        switch (keyCode) {
        case KeyEvent.VK_HOME:
            selectedRow = 0;
            break;
        case KeyEvent.VK_END:
            selectedRow = table.getRowCount() - 1;
            break;
        case KeyEvent.VK_DOWN:
            if (table.getRowCount() > (selectedRow + 1)) {
                selectedRow++;
            }
            break;
        case KeyEvent.VK_UP:
            if (selectedRow > 0) {
                selectedRow--;
            }
            break;
        }
        table.getSelectionModel().setSelectionInterval(selectedRow,
                selectedRow);
        table.scrollRectToVisible(table.getCellRect(selectedRow, 0, false));
    }
}

Related Tutorials