JavaFX Treeview 不显示任何项目 [英] JavaFX Treeview shows no items
问题描述
我尝试在我的 JavaFX 应用程序中实现一个 TreeView.但遗憾的是没有显示任何项目,但我找不到问题.我搜索了一些例子,并喜欢他们.
I try to implement an TreeView in my JavaFX App. But unfortenatly no items are showed, but i cannot find an issue. I search for some example and did it like them.
我在 SceneBuilder 中将一个 TreeView 控件放入我的 FXML 文件中,并选择了生成的 ControllerClass,并从该类中选择了 Treeview 字段作为 SceneBuilder 中 TreeView 控件的 ID.
I put an TreeView Control to my FXML File in SceneBuilder and selected the ControllerClass which was generated and slected the Treeview field from this class as an id for the TreeView Control in SceneBuilder.
这是我的控制器代码:
public class MainSceneController implements Initializable {
@FXML
TreeView<String> treeview;
@FXML
Button btn;
@Override
public void initialize(URL url, ResourceBundle rb) {
TreeItem<String> root = new TreeItem<>("root");
for(int i = 0; i < 10; i++) {
TreeItem<String> child = new TreeItem<>("Children " + i);
root.getChildren().add(child);
}
root.setExpanded(true);
this.treeview = new TreeView<>(root);
treeview.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
}
@FXML
public void addTreeViewItem() {
}
@FXML
private void showAddStreamDialog() {
try {
Parent p;
p = FXMLLoader.load(getClass().getResource("AddStream.fxml"));
Scene s = new Scene(p);
Stage stage = new Stage();
stage.initModality(Modality.APPLICATION_MODAL);
stage.setScene(s);
stage.show();
} catch (IOException ex) {
Logger.getLogger(MainSceneController.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
知道有什么问题吗?
推荐答案
您不应将新实例分配给 this.treeview
,因为该字段已被 FXLoader 初始化.因此,您只需设置根项 this.treeview.setRoot(root);
You shouldn't assign new instance to the this.treeview
because this field was already initialized by the FXLoader.
So instead of this.treeview = new TreeView<>(root);
you need simply to set the root item this.treeview.setRoot(root);
这篇关于JavaFX Treeview 不显示任何项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!