如何从Arraylist构建TreeView

时间:2013-04-26 14:46:15

标签: java treeview javafx-2 javafx

我正在寻找一种解决方案,如何从TreeView构建JavaFX ArrayList。我有这个ArrayList女巫包含连接名称,数据库服务器名称和表格列表:

public List<ConnectionsListObj> connListObj = new ArrayList<>();

    public class ConnectionsListObj {

        private String connectionName;
        private String dbgwName;
        private String tableName;

        public ConnectionsListObj(String connectionName, String dbgwName, String tableName) {

            this.connectionName = connectionName;
            this.dbgwName = dbgwName;
            this.tableName = tableName;

        }

        public String getConnectionName() {
            return connectionName;
        }

        public void setConnectionName(String connectionName) {
            this.connectionName = connectionName;
        }

        public String getDbgwName() {
            return dbgwName;
        }

        public void setDbgwName(String dbgwName) {
            this.dbgwName = dbgwName;
        }

        public String getTableName() {
            return tableName;
        }

        public void setTableName(String tableName) {
            this.tableName = tableName;
        }        

    }

我需要某种循环来查看树并使用以下代码生成树:

TreeItem<String> treeItemConnections = new TreeItem<> ("Connections");

        TreeItem<String> nodeItemDBGW = new TreeItem<>("DBGW 1");

        treeItemConnections.getChildren().add(nodeItemDBGW);

            TreeItem<String> nodeItemTable = new TreeItem<>("Table 1");

            nodeItemDBGW.getChildren().add(nodeItemTable);

        TreeView<String> treeView = new TreeView<>(treeItemConnections);
        StackPane root = new StackPane();
        root.getChildren().add(treeView);

        Scene scene = new Scene(root, 300, 250);

        primaryStage.setTitle("java-buddy.blogspot.com");
        primaryStage.setScene(scene);
        primaryStage.show();

问题是如何制作一个调查ArrayList的循环并构造三个循环?而且,当我在节点上选择时,我想获得节点的类型。

1 个答案:

答案 0 :(得分:1)

为什么不将ConnectionsListObj对象放在树中?我认为TreeView在每个树节点中的文本对象上调用toString(),因此只需从ConnectionsListObj.toString()返回要显示的字符串。然后,当您通过调用myTreeView.getSelectionModel().getSelectedItems()获得所选项时,您将获得一个ConnectionsListObj实例,该实例应该包含您需要的所有数据。

java中的循环如下所示:

for(ConnectionsListObj connection : connListObj) {
    nodeItemDBGW.getChildren().add(connection);
}

...或

nodeItemDBGW.getChildren().addAll(connListObj);