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

如何将域对象绑定到JavaFX TreeView?

宰父单弓
2023-03-14

我不希望GUI代码(即JavaFX类)出现在我的域对象中。

我需要编写一个适配器类来将我的域对象转换为JavaFX树吗?然后将侦听器添加到树中,并将更改映射回域对象?还是有更好的办法?

共有1个答案

阎修明
2023-03-14

前一段时间我也有类似的问题。我编写了一个自定义的TreeItem实现,可以处理递归数据结构。我写了一篇博文,这里有一个详细的解释。

RecursiveTreeItem的代码可以作为gist找到。

例如,考虑一个类task,它可以包含许多子任务,以此类推。

public class Task {
    private ObservableList<Task> subtasks = FXCollections.observableArrayList();

    public ObservableList<Task> getSubtasks() {
        return subtasks;
    }
}
Task root = new Task();
TreeItem<Task> rootItem = new RecursiveTreeItem<Task>(root, Task::getSubtasks); 
tree.setRoot(rootItem);
TreeItem<Task> rootItem = new RecursiveTreeItem<Task>(root, 
    task -> FXCollections.observableArrayList(task.getSubtasks()));
 类似资料:
  • 问题内容: 我们有一个普通的独立spring应用程序,需要将jdbc数据源放在jndi中。(我们使用jboss treecache,它需要数据源位于jndi中)。 一些谷歌搜索人员发现了大多数使用Spring的jndi查找示例,其中已经在jndi中放置了一个对象(通过tomcat或应用服务器等),但是我们需要另外的方法:我有一个简单的数据源Spring bean,我将其注入到其他服务中,但我无法将

  • 我有以下代码: 生日属性的类型为java.time。LocalDate,并且属于类Person。因为我使用JPA,所以我不想使用JavaFX属性。上述代码无法编译。编译器的错误消息是: 我该如何解决这个问题? 更新:我的个人类具有以下代码: 控制器类:

  • 问题内容: 我们有一个普通的独立spring应用程序,我们需要将jdbc数据源放在jndi中。(我们使用jboss treecache,它需要数据源位于jndi中)。 一些谷歌搜索人员发现了大多数使用Spring的jndi查找示例,其中已经在jndi中放置了一个对象(通过tomcat或应用程序服务器等),但是我们需要另外的方法:我有一个普通的数据源Spring bean,我将其注入到其他服务中,但

  • 问题内容: 我在将表单回发到控制器时遇到很多困难,该表单应该仅包含用户可以编辑的对象的数组列表。 表单可以正确加载,但是在发布时,似乎从未实际发布过任何内容。 这是我的表格: 上面的工作正常,它可以正确加载列表。但是,当我POST时,它返回一个空对象(大小为0)。我相信这是由于缺少造成的,但是无论如何这里是控制器POST方法: 我尝试添加一个,但是无论我做什么,都会导致异常。 我试过了: 我无法访

  • 问题内容: 我是否可以使用标准方法将自己的自定义对象添加到Map,然后将其正确编组到MapMessage中?当前,我收到无效对象类型消息。我注意到WebSphere有解决方案,但是我正在寻找不受特定AS约束的东西,如果没有这种方法,也许JBoss支持的东西会起作用。 如何在WebSphere中进行操作:http : //publib.boulder.ibm.com/infocenter/dmndh

  • 我们有多个RESTful服务,需要JAXB到域对象之间的对象映射,反之亦然。 我正在考虑定义一个类似于以下内容的公共接口//映射器接口 //RecorderMapper类-实现映射器接口 //Recorder服务类-使用Mapper进行对象映射 主要思想是定义一个通用模式来在整个团队中实现对象映射。 我想知道是否有更好的方法。 非常感谢您的帮助。