我做了树视图。我想像这样制作树视图。
当我抓住鼠标到项目时,该项目应该是chnage image。
我知道getSelectionMode()的方式...但我不知道悬停事件。 请帮帮我。
答案 0 :(得分:0)
不确定我是否理解你的错误。
但是要在单击图像后立即更改图像,请使用selectedItemProperty侦听器:
treeView.getSelectionModel().selectedItemProperty().addListener( new ChangeListener() {
@Override
public void changed(ObservableValue observable, Object oldValue,
Object newValue) {
TreeItem<String> selectedItem = (TreeItem<String>) newValue;
// do something
}
});
如果你想要它,只要将鼠标悬停在该项目上,就可以在该行上使用hoverProperty:
treeView.setRowFactory(tableView -> {
final TableRow<Person> row = new TableRow<>();
row.hoverProperty().addListener((observable) -> {
final YourItem yourItem = row.getItem();
if (yourItem.isHover() ) {
// do something
} else {
// do something
}
});
return row;
});
(此代码来自答案here)
我想念,它关于TreeView。您可以在cellfactory中尝试使用onMouseEntered或类似的内容:
treeView.setCellFactory(tv -> {
final Tooltip tooltip = new Tooltip();
TreeCell<Path> cell = new TreeCell<Path>() {
@Override
public void updateItem(Path item, boolean empty) {
super.updateItem(item, empty);
}
};
cell.setOnMouseClicked(e -> {
// do something
});
cell.setOnMouseEntered(e -> {
// do something
});
return cell ;
});