难道没有SWING高手吗??????????!

解决方案 »

  1.   

    use JTable.getCellRect() to get the rect of the row.
    use JScrollPane.scrollRectToVisible(); to make this row visible.
      

  2.   

    老兄,不行呀,
    jtable.getCellRect()返回Rectangle,
    可以打印,x=xxx,y=xxx,width=0,height=20,
    但call jscrollpane.scrollRectToVisible();就是没用,请指点
      

  3.   

    我try了一下,可以的:
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;import javax.swing.table.*;
    public class testFrame extends JFrame
    {
    int rows=80;
    int cols=5;
    private Object[] rowData=new Object[cols];
    private DefaultTableModel model=new DefaultTableModel();
    JScrollPane jp = new JScrollPane();
    private JTable table=new JTable(model); public testFrame()
    {
      for(int i=0;i<cols;i++)
    model.addColumn("Column"+i);
      for(int i=0;i<rows;i++)
      {
      for(int j=0;j<cols;j++)
    rowData[j]="("+i+","+j+")";
      model.addRow(rowData);
    }   Container contentPane=getContentPane();
      jp.getViewport().add(table);   contentPane.add(new ControlPanel(),BorderLayout.NORTH);
      contentPane.add(jp,BorderLayout.CENTER); }
    public static void main(String args[])
    {
    testFrame bt=new testFrame();
    bt.setTitle("test of AbstractTableModel");
    bt.setSize(400,400);
    bt.setVisible(true);
    }
    class ControlPanel extends JPanel
    { private JButton scrollButton = new JButton("add&scroll");
    public ControlPanel()
    { scrollButton.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent e)
    { String sdata[]=new String[5];
    for(int i=0;i<5;i++)
    {
    sdata[i]="cell"+i;
    }
    model.addRow(sdata);
    int row=model.getRowCount();
    Rectangle cellrec=table.getCellRect(row-1,0,true);
    jp.getViewport().scrollRectToVisible(cellrec);
    }
    });
    }
    }
    }
      

  4.   

    谢谢您的回答,我有try了下,为何编译时老报告不能解析符号getViewport(),请指教!
      

  5.   

    我try了一下
    没有出问题。