javafx-2 - 双击树节点时如何触发事件

标签 javafx-2 javafx javafx-8

我有这段代码可以在远程Java类中创建新选项卡。

treeView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<TreeItem<String>>()
        {
            @Override
            public void changed(ObservableValue<? extends TreeItem<String>> observable, TreeItem<String> oldValue, TreeItem<String> newValue)
            {
                System.out.println("Selected Text : " + newValue.getValue());
                // Create New Tab
                Tab tabdata = new Tab();
                Label tabALabel = new Label("Test");
                tabdata.setGraphic(tabALabel);

                DataStage.addNewTab(tabdata);
            }
        });

您能告诉我双击树节点时如何修改代码以打开新选项卡。当我单击一次时,在我的代码中将打开该选项卡。我需要什么事件处理程序?

最佳答案

您可以将EventHandler<MouseEvent>添加到TreeView.setOnMouseClicked()方法中,并检查getClickCount()MouseEvent返回值,以确定是否为双击。删除上面的ChangeListener并将逻辑添加到EventHandler

Use the description here and apply it to your treeView variable.

它看起来像这样。您可能还需要检查该项目的null

treeView.setOnMouseClicked(new EventHandler<MouseEvent>()
{
    @Override
    public void handle(MouseEvent mouseEvent)
    {            
        if(mouseEvent.getClickCount() == 2)
        {
            TreeItem<String> item = treeView.getSelectionModel().getSelectedItem();
            System.out.println("Selected Text : " + item.getValue());

            // Create New Tab
            Tab tabdata = new Tab();
            Label tabALabel = new Label("Test");
            tabdata.setGraphic(tabALabel);

            DataStage.addNewTab(tabdata);
        }
    }
});

关于javafx-2 - 双击树节点时如何触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17348357/

相关文章:

java - 一列添加两个按钮并获取点击行值javafx

java - 等到使用 Latch 执行 Platform.runLater

controller - 带有 Controller 的多个 FXML,共享对象

javascript - 在Webview中使用PDFJS库在Javafx中显示Pdf

java - 这个 JavaFX/FXML 自定义组件有什么问题?

ant - 将 JavaFX 应用程序打包为 NetBeans 中的单个 jar

javafx-2 - 场景生成器打不开

java - 高效更新已排序的 JavaFX ObservableList

java - 如何在按钮单击时递归调用按钮?

css - JavaFX - 无法从元素内加载图像