Here you can find the source of scrollToVisible(JTable table, int rowIndex, int colIndex, boolean center)
public static void scrollToVisible(JTable table, int rowIndex, int colIndex, boolean center)
//package com.java2s; /*// ww w . jav a 2 s.c o m * Copyright (C) 2010 Amon * * 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/>. */ import java.awt.Rectangle; import javax.swing.JTable; import javax.swing.JViewport; public class Main { public static void scrollToVisible(JTable table, int rowIndex, int colIndex, boolean center) { if (!(table.getParent() instanceof JViewport)) { return; } JViewport viewport = (JViewport) table.getParent(); Rectangle rect = table.getCellRect(rowIndex, colIndex, true); Rectangle viewRect = viewport.getViewRect(); rect.setLocation(rect.x - viewRect.x, rect.y - viewRect.y); if (center) { int centerX = (viewRect.width - rect.width) >> 1; int centerY = (viewRect.height - rect.height) >> 1; if (rect.x < centerX) { centerX = -centerX; } if (rect.y < centerY) { centerY = -centerY; } rect.translate(centerX, centerY); } viewport.scrollRectToVisible(rect); } }