3

私は JavaFX の使用を開始しており、新しいツリー ビューを使用したいと考えています (複数のアイコンを使用してデータを表すことができるため、これを利用したいと考えています)。

ツリー ビューと 1 つのボタンを持つ基本的なフォーム/シーンを作成しました。このボタンが押されると、ツリービューにデータを取り込みたいと思います。

今、私が見たすべての例は、フォーム/シーンがコードで生成され、ツリービューがそのコントロールにバインドされている場所です....シーンビルダーで事前に設計されたフォームを作成し、外部コードから入力するにはどうすればよいですか?

4

2 に答える 2

3

コントローラー クラスで次のコードを使用できます。FXML ファイル内で、FXID を selectionTreeView に設定する必要があります。JDK 8u5 でテストされ、動作しました。

@FXML
TreeView selectionTreeView;
@FXML
private void handleButtonAction(ActionEvent event) {
    createTree();
}

public void createTree(String... rootItems) {
    //create root
    TreeItem<String> root = new TreeItem<>("Root");
    //root.setExpanded(true);
    //create child
    TreeItem<String> itemChild = new TreeItem<>("Child");
    itemChild.setExpanded(false);
    //root is the parent of itemChild
    root.getChildren().add(itemChild);
    selectionTreeView.setRoot(root);
}
于 2014-04-21T20:58:14.890 に答える
0

シーンビルダーのコントロールのルートノードでクラス名(パッケージを含む)を設定します。をクリックすると、右側の[コード]タブに移動します。これが一番上のフィールドです。

次に、コントロールのTreeViewにIDを設定します。

ここで、コントローラーオブジェクトにTreeViewフィールドを追加します。変数名は、シーンビルダーでTreeViewIDを設定したものと同じである必要があります。@FXMLでフィールドに注釈を付けます。

これで、FXMLがロードされると、コントローラーが作成され、TreeViewフィールドが設定されます。

于 2012-09-16T16:34:07.700 に答える