求命呀請問怎么取得當前表中MOUSE點擊位置的行和列號我把SUN公司翻個底朝天也沒有找到謝謝了

解决方案 »

  1.   

    rowAtPoint(Point point)
    columnAtPoint(Point point)
      

  2.   

    jTable.addMouseListener(new MouseAdapter() {
        public void mousePressed(MouseEvent e) {
            Point p = e.getPoint();
            int row = jTable.rowAtPoint(p);
            int column = jTable.columnAtPoint(p);        if (row != -1 && column != -1) {
                .....
            }
        }
    });
      

  3.   

    謝謝你的回復
    這種解決方式更好
    不需要我們再去做其它動做
    你也許不相信,行和列是通過MODEL自動獲得的
    你可以在這里加一條打印語讒,你就知道效果了
    :
        Object[][] cellData = 
        { { "DATA", "DATA" }, { "DATA", "DATA" }, { "DATA", "DATA" }, 
          { "DATA", "DATA" }, { "DATA", "DATA" } };
        Object[] cellTitle = { "Title", "Title" };
        private JTable jTable1 = new JTable(cellData, cellTitle) {            public void setValueAt(Object aValue, int row, int column) {                Object origValue = getValueAt(row, column);
                    jTable1.getValueAt(jTable1.getSelectedRow(), 
                                       jTable1.getSelectedColumn());                if (origValue != null && origValue.equals(aValue))
                        return;
                    if (aValue != null) {
                        super.setValueAt(aValue, row, column);
                    }
                }
            };
      

  4.   

    完整的列子
    免得您去想該怎么使用
    我就不喜歡
    我希望別人給的例子至少當前能夠運行
    :
    package client;
    import java.awt.Dimension;
    import java.awt.Rectangle;import java.awt.event.ActionEvent;
    import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;public class Frame1 extends JFrame {
        private JScrollPane jScrollPane1 = new JScrollPane();
        Object[][] cellData = 
        { { "DATA", "DATA" }, { "DATA", "DATA" }, { "DATA", "DATA" }, 
          { "DATA", "DATA" }, { "DATA", "DATA" } };
        Object[] cellTitle = { "Title", "Title" };
        private JTable jTable1 = new JTable(cellData, cellTitle) {            public void setValueAt(Object aValue, int row, int column) {                Object origValue = getValueAt(row, column);
                    jTable1.getValueAt(jTable1.getSelectedRow(), 
                                       jTable1.getSelectedColumn());
                    System.out.println("row:"+row+" column:"+column);
                    if (origValue != null && origValue.equals(aValue))
                        return;
                    if (aValue != null) {
                        super.setValueAt(aValue, row, column);
                    }
                }
            };    public Frame1() {
            try {
                jbInit();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        private void jbInit() throws Exception {
            this.getContentPane().setLayout(null);
            this.setSize(new Dimension(400, 300));
            jScrollPane1.setBounds(new Rectangle(15, 20, 365, 175));
            jScrollPane1.getViewport().add(jTable1, null);
            this.getContentPane().add(jScrollPane1, null);
        }
        public static void main(String[] arg){
            new Frame1().setVisible(true);
        }
    }