void () { ListSelectionModel selectionModel = myTreeTable.getSelectionModel(); int maxSelectionIndex = selectionModel.getMaxSelectionIndex(); final int maxColumnSelectionIndex = Math.max(0, myTreeTable.getColumnModel().getSelectionModel().getMinSelectionIndex()); Rectangle maxCellRect = myTreeTable.getCellRect(maxSelectionIndex, maxColumnSelectionIndex, false); final Point selectPoint = maxCellRect.getLocation(); final int allHeight = myTreeTable.getVisibleRect().height; myTreeTable.scrollRectToVisible(new Rectangle(new Point(0, Math.max(0, selectPoint.y - allHeight / 2)), new Dimension(0, allHeight))); }