2014-12-07 51 views
0

我目前有一個帶有自定義CellFactory的TableView。我試圖弄清楚當鼠標進入單元格時如何獲取單元格的核心數據。使用MouseEvent獲取TableView單元格數據

我將使用此數據填充另一個控制器中定義的標籤。

我一直在試圖看看事件過濾器和事件處理程序,並懷疑答案與使用適當的東西有關,但我一直無法弄清楚或找到答案。

請讓我知道你想看什麼代碼,如果有的話。我甚至不確定此時會有什麼幫助。

回答

0

註冊鼠標監聽器與電池處理mouseEntered事件,並在細胞致電getItem()獲取數據:

TableView<MyRowType> table = ... ; 
TableColumn<MyRowType, MyCellType> column = ... ; 

column.setCellFactory (c-> { 
    TableCell<MyRowType, MyCellType> cell = new TableCell<MyRowType, MyCellType>() { 
     @Override 
     public void updateItem(MyCellType item, boolean empty) { 
      super.updateItem(item, empty) ; 
      // your implementation here... 
     } 
    }; 
    cell.setOnMouseEntered(e -> { 
     MyCellType item = cell.getItem(); 
     if (item != null) { 
      // do whatever you need with item 
     } 
    }); 
    return cell ; 
});