我有这段代码可以在远程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/