首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JTable滑鼠點擊獲取行號完整實現

     編輯:Java 相關知識

在Swing開發中,獲取JTable滑鼠點擊位置的行號是常見需求。關鍵在於使用JTable.rowAtPoint(Point)方法,配合滑鼠事件的getPoint()即可精確定位。

核心代碼實現

JTable table = new JTable(cells, columnNames);
table.addMouseListener(new java.awt.event.MouseAdapter() {
    @Override
    public void mouseClicked(java.awt.event.MouseEvent e) {
        // 獲取滑鼠點擊座標
        Point mousePoint = e.getPoint();
        
        // 轉換為行號(從0開始,顯示時+1)
        int rowIndex = table.rowAtPoint(mousePoint);
        System.out.println("點擊行號: " + (rowIndex + 1));
        
        // 可選:獲取總行數對比
        System.out.println("表格總行數: " + table.getRowCount());
    }
});

關鍵點解析

  • rowAtPoint():返回點對應的行索引,若點擊表頭或空白區返回-1
  • 座標系統:滑鼠事件座標相對於JTable組件原點
  • 邊界處理:建議加入行號有效性檢查if (rowIndex >= 0)

進階應用:雙擊編輯/彈出選單

public void mouseClicked(MouseEvent e) {
    int row = table.rowAtPoint(e.getPoint());
    if (row >= 0) {
        if (e.getClickCount() == 2) {
            // 雙擊觸發編輯
            startEditing(row);
        } else if (SwingUtilities.isRightMouseButton(e)) {
            // 右鍵彈出選單
            showContextMenu(e.getX(), e.getY(), row);
        }
    }
}

這種方式比遍歷選擇模型更直接高效,適合即時響應滑鼠操作的場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved