我正在寻找一种解决方案,如何从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
的循环并构造三个循环?而且,当我在节点上选择时,我想获得节点的类型。
答案 0 :(得分:1)
为什么不将ConnectionsListObj对象放在树中?我认为TreeView在每个树节点中的文本对象上调用toString(),因此只需从ConnectionsListObj.toString()返回要显示的字符串。然后,当您通过调用myTreeView.getSelectionModel().getSelectedItems()
获得所选项时,您将获得一个ConnectionsListObj实例,该实例应该包含您需要的所有数据。
java中的循环如下所示:
for(ConnectionsListObj connection : connListObj) {
nodeItemDBGW.getChildren().add(connection);
}
...或
nodeItemDBGW.getChildren().addAll(connListObj);