我在ListView中有一个链接列表。我想将mouseEventListener添加到列表的每个单元格,以便每当用户双击列表项时链接被打开。我可以编写自己打开链接的功能,但是我无法在列表中的每个单元格中添加doubleclick事件。请帮忙......
答案 0 :(得分:24)
让我们将您的ListView
视为播放列表。现在,您可以使用
playList.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent click) {
if (click.getClickCount() == 2) {
//Use ListView's getSelected Item
currentItemSelected = playList.getSelectionModel()
.getSelectedItem();
//use this to do whatever you want to. Open Link etc.
}
}
}
答案 1 :(得分:4)
我必须解决同样的问题,我的ListView包含一个网格窗格和标记文本,因此您必须更改&#39; instanceof&#39;以及&#39;或&#39;的另一面你有什么。
(假设您的ListView名为listView):
listView.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
if(event.getButton() == MouseButton.PRIMARY && event.getClickCount() == 2 &&
(event.getTarget() instanceof LabeledText || ((GridPane) event.getTarget()).getChildren().size() > 0)) {
//your code here
}
}
});
如果用户点击项目的最边缘附近和ListView的边框,它可能不会传递if循环,但听起来用户不会在你的情况下这样做。< / p>
希望这有帮助。