自定義組件我有一個類MyTreeTableView延伸TreeTableView擴展JavaFX的8 TreeTableView
我已經implmented一些方法在我的派生類,這是不是在原來的TreeTableView可通過可觀察到的列表來填充樹視圖。除此之外,沒有其他功能。
我可以使用這個類,並在Java中
即
MyTreeTableView localtree = new MyTreeTableView(new TreeItem<>());
localtree.setItems(myobservedList);
編碼時,如果我這個實例添加到場景中的所有作品就像一個標準TreeTableView它按預期工作。要添加這個實例到現場我必須在Java端做這個。
我必須將我的MyTreeTableView類放入一個自定義的FXML組件中,以便使用它可訪問的場景生成器以方便拖放。我試圖將localtreetable
分配給FXML中定義的標準Java FX 8 TreeTableView,它是現有場景的一部分。
我做了以下
localtreetable.getColumns().addAll(col1,col2);
localtreetable.setShowRoot(false);
localtreetable.setItems(myobservedList);
JavaFX8TreeTableView.setRoot(localtreetable.getRoot());
col1 = (TreeTableColumn<Object, String>) JavaFX8TreeTableView.getColumns().get(0);
col2 = (TreeTableColumn<Object, String>) JavaFX8TreeTableView.getColumns().get(1);
//setCellValueFactory and CellFactories for col1 and col2 after this.
這裏col1
和col2
都在FXML定義,他們這也是在FXML定義的JavaFX8TreeTableView
的列。
通過這個攻擊,JavaFX8TreeTableView會在UI上顯示對象中填充的數據。然而,用戶界面不正確,樹視圖混亂。當我說亂七八糟的時候,樹的順序是正確的,但是>被放在樹項目的第4個字母上,並且點擊箭頭不會展開或關閉樹項目,您必須在其他項目上單擊它它可以擴展和關閉它的位置。 我的第一個問題是,我怎麼轉值從localtreetable
到JavaFx8TreeTableView,這樣我可以填充值已經定義TreeTableView