在JavaFX 2.x ListView中如何获取鼠标下的哪一行?

时间:2012-12-24 08:02:19

标签: javafx-2

默认样式突出显示鼠标所在的行。我需要找出onMouseMove处理程序中的哪个行索引。

1 个答案:

答案 0 :(得分:3)

其中一种方法是使用细胞工厂。例如,请考虑oracle教程中的示例代码Example 12-4 Creating a Cell Factory。要添加所需的功能,请按如下所示替换单元出厂设置代码:

list.setCellFactory(new Callback<ListView<String>, ListCell<String>>() {
    @Override
    public ListCell<String> call(ListView<String> list) {
        final ListCell cell = new ColorRectCell();
        cell.setOnMouseEntered(new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent event) {
                System.out.println("index: " + cell.getIndex());
            }
        });
        return cell;
    }
});