【发布时间】:2014-04-15 14:59:46
【问题描述】:
我是 javafx 的新手。我创建了一个简单的 javafx fxml 应用程序。我在我的 fxml 文件中定义了一个 treeView。如下,
FXMLDocument.fxml
<AnchorPane id="AnchorPane" prefHeight="200.0" prefWidth="320.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" fx:controller="scenebuilderfirst.FXMLDocumentController">
<children>
<TreeView id="" fx:id="tree" layoutX="60.0" layoutY="14.0" prefHeight="172.0" prefWidth="200.0" />
</children>
</AnchorPane>
并按如下方式创建控制器类,
FXMLDocumentController.java
public class FXMLDocumentController implements Initializable {
@FXML
private TreeView<?> tree;
@Override
public void initialize(URL url, ResourceBundle rb) {
}
}
我的主要java文件如下,
MyApp.java
public class SceneBuilderFirst extends Application {
@Override
public void start(Stage stage) throws Exception {
AnchorPane root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
现在我需要在运行程序时将树项添加到 TreeView。所以我想在我的控制器类的 initialize() 方法中编写以下代码和平,
// creating root item for the tree
TreeItem<String> rootItem = new TreeItem<>("root");
rootItem.setExpanded(true);
//creating childern for the tree
TreeItem<String>item1= new TreeItem<>("content1");
rootItem.getChildren().add(item1);
TreeItem<String>item2= new TreeItem<>("content2");
rootItem.getChildren().add(item2);
//attaching root item to tree
tree = new TreeView<>(rootItem);
但它没有用。
我需要在运行程序时设置 TreeItems。不通过 fxml 文件。 所以我认为我应该在我的主 java 文件中进行编码 在我的主 java 文件中通过 FXMLLoader 加载 TreeView 后,我需要一种方法来访问它,这样我就可以根据自己的选择制作一个 TreeView 并在运行程序时将其附加到这个 TreeView。请指导我。
【问题讨论】:
标签: javafx