[JavaFX]JavaFX中ListView双击事件

Head Pic: 【女の子】「miku 鱼」/「千夜QYS3」のイラスト [pixiv]

最近在一个项目中用到了ListView这个组件用来实现文件浏览器。

问题

在通常的操作系统中,我们都是双击打开一个目录的,而JavaFX给的API文档中是这样给出选择事件的:

fileManager.getSelectionModel().selectedItemProperty().addListener(
        (ObservableValue<? extends String> ov,String oldVal,String newVal) -> {
    //Your code here.
});

用一个$lamda$表达式来完成,但是这样的事件是选择事件,而非咱们要的双击。

解决

双击自然是要想到鼠标了,就给ListView监听鼠标事件即可。

fileManager.setOnMouseClicked(new EventHandler<MouseEvent>() {
    @Override
    public void handle(MouseEvent event) {
        if(event.getButton() == MouseButton.PRIMARY && event.getClickCount() == 2) {
            TypeName currentItem = fileManager.getSelectionModel().getSelectedItem();
            //Your code here.
        }
    }        
});

其中TypeName是你ListView存放的类型。

最后修改:2019 年 01 月 26 日 03 : 25 PM

发表评论