Java examples for Swing:JTable
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.
/*/*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)); } }