加入鼠标事件之后,如何通过MouseEvent get到要选择的行呢?

解决方案 »

  1.   

    直接使用JTable的getSelectedRow方法就可以得到选择行
      

  2.   

    右键根本不影响table的SelectedRow!
      

  3.   

    void tblParameter_mouseClicked(MouseEvent e) {
            //这里可以判断鼠标的右键 还是左键 ,以及e.getClickCount来判断次数。
            //这样可以对不同的情况作不同的处理。
            //下面的就是一个大概的意思。
            int col = tblParameter.columnAtPoint(e.getPoint());
            int row = tblParameter.rowAtPoint(e.getPoint());
            tblParameter.setRowSelectionInterval(row,row+1);
        }
      

  4.   

    基本意思是:
    1。首先捕获鼠标事件,判断是你像要的(比如右键点击两次等等)。
    2。通过MouseEvent e变量的e。getPoint得到鼠标的位置point.
    3。用JTable.rowAtPoint(Point)和
         JTable.columnAtPoint(point)方法得到鼠标所在的行和列的标号。
    4。利用JTable.setRowSelectionInterval
       和JTable.setColumnSelectionInterval方法去控制像要选取的行和列。当然,第四步的效果与你的JTable所设置的选取模式相关。下面是两个方法的帮助文档:
    ================================
    setRowSelectionInterval
    public void setRowSelectionInterval(int index0,
                                        int index1)
    Selects the rows from index0 to index1, inclusive. Parameters:
    index0 - one end of the interval
    index1 - the other end of the interval 
    Throws: 
    IllegalArgumentException - if index0 or index1 lie outside [0, getRowCount()-1]--------------------------------------------------------------------------------setColumnSelectionInterval
    public void setColumnSelectionInterval(int index0,
                                           int index1)
    Selects the columns from index0 to index1, inclusive. Parameters:
    index0 - one end of the interval
    index1 - the other end of the interval 
    Throws: 
    IllegalArgumentException - if index0 or index1 lie outside [0, getColumnCount()-1]