JTable Scrolling to a Specified Row Index

前端 未结 5 1873
梦如初夏
梦如初夏 2020-12-03 00:51

I have a JTable that is within a JScrollPane. Rows are added to the table at runtime based on events that happen in my application. I want to have the scoll pan

5条回答
  •  感情败类
    2020-12-03 01:11

    See this example : http://www.exampledepot.com/egs/javax.swing.table/Vis.html

    update: the link is now obsolete, here is the code (from http://smi-protege.stanford.edu/repos/protege/protege-core/trunk/src/edu/stanford/smi/protege/util/ComponentUtilities.java )

    public static void scrollToVisible(JTable table, int rowIndex, int vColIndex) {
            if (!(table.getParent() instanceof JViewport)) {
                return;
            }
            JViewport viewport = (JViewport)table.getParent();
    
            // This rectangle is relative to the table where the
            // northwest corner of cell (0,0) is always (0,0).
            Rectangle rect = table.getCellRect(rowIndex, vColIndex, true);
    
            // The location of the viewport relative to the table
            Point pt = viewport.getViewPosition();
    
            // Translate the cell location so that it is relative
            // to the view, assuming the northwest corner of the
            // view is (0,0)
            rect.setLocation(rect.x-pt.x, rect.y-pt.y);
    
            table.scrollRectToVisible(rect);
    
            // Scroll the area into view
            //viewport.scrollRectToVisible(rect);
        }
    

提交回复
热议问题