-1

我正在寻找一种解决方案,如何TreeViewArrayList. 我有这个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并构造三个?而且,当我在节点上选择时,我想获取节点的类型。

4

1 回答 1

1

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

对于您的情况,java 中的循环如下所示:

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

或者...

nodeItemDBGW.getChildren().addAll(connListObj);
于 2013-04-28T17:51:39.927 回答