TreeView的使用

2017-05-19  本文已影响0人  Mixqum

详细教程:
http://www.javafxchina.net/blog/2015/04/doc03_treeview/

在JavaFX应用中创建树形结构,你一般需要实例化TreeView类,然后定义一些TreeItem对象,指定其中的某一个成为根节点,将根节点添加到树视图中,并将其它TreeItem对象添加到根节点下

1相关API

TreeItem<String> rootItem = new TreeItem<> ("Inbox", rootIcon);
rootItem.setExpanded(true);
for (int i = 1; i < 6; i++) {
      TreeItem<String> item = new TreeItem<> ("Message" + i);
      rootItem.getChildren().add(item);
}      

所有在for循环中创建的的TreeItem都通过调用getChildren和add方法被添加到了root节点上

在根节点对象上对setExpanded方法的调用定义了树视图的初始外观。默认情况下所有的TreeItem实例是被折叠起来的,并且必须在必要时手工展开。如果在setExpanded方法调用时设置参数为true,这样会在程序启动时会自动展开根节点(要展开全部节点,每个TreeItem都要setExpanded为true)

示例代码


import javafx.application.Application;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.TreeItem;
import javafx.scene.control.TreeView;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class TreeViewSample extends Application {

    private final Node rootIcon = new ImageView(
        new Image(getClass().getResourceAsStream("folder_16.png"))
    );

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Tree View Sample");        

TreeItem<String> rootItem = new TreeItem<> ("Inbox", rootIcon);
rootItem.setExpanded(true);
        for (int i = 1; i < 6; i++) {
TreeItem<String> item = new TreeItem<> ("Message" + i);
rootItem.getChildren().add(item);
        }        
TreeView<String> tree = new TreeView<> (rootItem);
        StackPane root = new StackPane();
        root.getChildren().add(tree);
        primaryStage.setScene(new Scene(root, 300, 250));
        primaryStage.show();
    }
}

import javafx.application.Application;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.TreeItem;
import javafx.scene.control.TreeView;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
 
public class TreeViewSample extends Application {
 
    private final Node rootIcon = new ImageView(
        new Image(getClass().getResourceAsStream("folder_16.png"))
    );
 
    public static void main(String[] args) {
        launch(args);
    }
 
    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Tree View Sample");        
 
TreeItem<String> rootItem = new TreeItem<> ("Inbox", rootIcon);
rootItem.setExpanded(true);
        for (int i = 1; i < 6; i++) {
TreeItem<String> item = new TreeItem<> ("Message" + i);
rootItem.getChildren().add(item);
        }        
TreeView<String> tree = new TreeView<> (rootItem);
        StackPane root = new StackPane();
        root.getChildren().add(tree);
        primaryStage.setScene(new Scene(root, 300, 250));
        primaryStage.show();
    }
}
上一篇 下一篇

猜你喜欢

热点阅读