当前位置: 首页 > 知识库问答 >
问题:

JavaFX Treeview返回选定项

简培
2023-03-14

注意:我实际上不确定为什么这种情况首先需要监听器,因为我甚至不想经常监听,而是在调用方法时得到结果。

    private CampaignObject getLeadSelect(){
    CampaignObject co = null;

    campTree.getSelectionModel().selectedItemProperty().addListener(
        new ChangeListener<TreeItem <CampaignObject>>() {
            @Override
            public void changed(ObservableValue<? extends TreeItem<CampaignObject>> observableValue, 
                    TreeItem<CampaignObject> oldItem, TreeItem<CampaignObject> newItem) {
                    co = newItem.getValue());
        }
    });

    return co;
}

共有1个答案

陈和裕
2023-03-14

如果不需要监听器,就不要定义监听器。听起来你只是需要

private CampaignObject getLeadSelect(){
    TreeItem<CampaignObject> selectedItem = campTree.getSelectionModel().getSelectedItem();
    return selectedItem == null ? null : selectedItem.getValue() ;
}

如果启用了多个选择,并且需要选定的模型对象列表,请执行

private List<CampaignObject> getAllSelected() {
    return campTree.getSelectionModel().getSelectedItems()
           .stream()
           .map(TreeItem::getValue)
           .collect(Collectors.toList());
}

如果希望将选定的项作为模型对象进行观察,可以执行如下操作:

ObjectProperty<CampaignObject> selectedCampaign = new SimpleObjectProperty<>();
selectedCampaign.bind(Bindings.createObjectBinding(() -> {
    TreeItem<CampaignObject> selectedItem = campTree.getSelectionModel().getSelectedItem();
    return selectedItem == null ?  null : selectedItem.getValue();
}, campTree.getSelectionModel().selectedItemProperty()));
selectedCampaign.addListener((obs, oldCampaign, newCampaign) -> {
    // ...
});
 类似资料:
  • 我正在尝试编辑一个项目,下面是我的代码, 在编辑和提交值时, 如果和泛型类型是,则返回新的TextFieldTreeCell 当我使用时,我不知道如何使用String转换器, 如何缓解此异常。

  • 我有这个自定义树视图代码: 我希望能够使用内容菜单重命名树的节点。你能帮我实现这个吗?

  • 是否有任何方法可以从NamedParameterJdbcTemplate返回可选的? 我的查询有时会返回空。所以我想要漂亮的方法来检查空。我不想做尝试捕捉空结果数据访问异常,因为这个有点丑。

  • 我在反应中有一个选择,只是想console.log选择的值。我的问题是console.log返回最后选择的值。例如,如果我选择4,然后是3,然后是5,代码将呈现1(默认值),然后是4,然后是3。 这是我的JSX代码: 这是处理输入更改的函数:

  • 我正在做一个项目,最近开始使用MPAndroidChart。 我的MPAndroidChart可以正常工作并正确填充图表数据,但我希望有一种方法能够拖动并选择图表的一个区域。选择完成后,需要返回所选点的x值和y值。 我找不到任何方法来做我想做的事。我在中发现了这种突出显示功能https://github.com/PhilJay/MPAndroidChart/wiki/Highlighting但我认

  • 我试图模拟一个对象,该对象返回一个带有Mockito的Java可选对象: 当被调用,它返回。 我希望方法返回 返回的任何原因? 方法如下: 以下是Junit: