Javafx 2 如何将图标图像添加到CheckBoxTreeItem中?

Javafx 2 如何将图标图像添加到CheckBoxTreeItem中?,javafx-2,javafx,Javafx 2,Javafx,我对TreeView组件有问题,它有CheckBoxTreeItem来检查启用或禁用,这是一个非常好的选择和取消选择的参考==>使用JavaFXUI控件:树视图| JavaFX2教程和使用树单元编辑器的文档。 这是具有树视图的图像,具有CheckBoxTreeItem () 现在,我想在复选框TreeItem旁边添加图标图像(这意味着我们在复选框旁边有图标图像) 谁能帮我解决这个问题 当我这样设置时,我看到了这一点 setCellFactory(CheckBoxTreeCell.forTreeV

我对TreeView组件有问题,它有CheckBoxTreeItem来检查启用或禁用,这是一个非常好的选择和取消选择的参考==>使用JavaFXUI控件:树视图| JavaFX2教程和使用树单元编辑器的文档。 这是具有树视图的图像,具有CheckBoxTreeItem ()

现在,我想在复选框TreeItem旁边添加图标图像(这意味着我们在复选框旁边有图标图像)

谁能帮我解决这个问题

当我这样设置时,我看到了这一点 setCellFactory(CheckBoxTreeCell.forTreeView()); ==>它无法显示图标

这是我的代码

package sample;  
import javafx.application.Application;  
import javafx.fxml.FXMLLoader;  
import javafx.scene.Node;  
import javafx.scene.Parent;  
import javafx.scene.Scene;  
import javafx.scene.control.CheckBoxTreeItem;  
import javafx.scene.control.TreeView;  
import javafx.scene.control.cell.CheckBoxTreeCell;  
import javafx.scene.image.Image;  
import javafx.scene.image.ImageView;  
import javafx.scene.layout.StackPane;  
import javafx.stage.Stage;  
public class Main extends Application {  
    @Override  
    public void start(Stage primaryStage) throws Exception{  
        primaryStage.setTitle("Tree View Sample");  
        Node graphic  = new ImageView(new Image("https://duke.kenai.com/iconSized/duke4.gif"));  
        CheckBoxTreeItem<String> rootItem =  
                new CheckBoxTreeItem<String>("View Source Files", graphic);  
        rootItem.setExpanded(true);  
        final TreeView tree = new TreeView(rootItem);  
        tree.setEditable(true);  
        tree.setCellFactory(CheckBoxTreeCell.<String>forTreeView());  
        for (int i = 0; i < 8; i++) {  
            final CheckBoxTreeItem<String> checkBoxTreeItem =  
                    new CheckBoxTreeItem<String>("Sample" + (i+1), graphic);  
            rootItem.getChildren().add(checkBoxTreeItem);  
        }  
        tree.setRoot(rootItem);  
        tree.setShowRoot(true);  
        StackPane root = new StackPane();  
        root.getChildren().add(tree);  
        primaryStage.setScene(new Scene(root, 300, 250));  
        primaryStage.show();  
    }  
    public static void main(String[] args) {  
        launch(args);  
    }  
}  
包装样品;
导入javafx.application.application;
导入javafx.fxml.fxmloader;
导入javafx.scene.Node;
导入javafx.scene.Parent;
导入javafx.scene.scene;
导入javafx.scene.control.CheckBoxTreeItem;
导入javafx.scene.control.TreeView;
导入javafx.scene.control.cell.CheckBoxTreeCell;
导入javafx.scene.image.image;
导入javafx.scene.image.ImageView;
导入javafx.scene.layout.StackPane;
导入javafx.stage.stage;
公共类主扩展应用程序{
@凌驾
public void start(Stage primaryStage)引发异常{
setTitle(“树视图示例”);
节点图形=新图像视图(新图像(“https://duke.kenai.com/iconSized/duke4.gif"));  
CheckBoxTreeItem根项目=
新的CheckBoxTreeItem(“查看源文件”,图形);
setExpanded(true);
最终树视图树=新树视图(根项目);
tree.setEditable(true);
setCellFactory(CheckBoxTreeCell.forTreeView());
对于(int i=0;i<8;i++){
最终CheckBoxTreeItem CheckBoxTreeItem=
新的复选框项目(“样本”+(i+1),图形);
rootItem.getChildren().add(checkBoxTreeItem);
}  
tree.setRoot(rootItem);
tree.setShowRoot(true);
StackPane root=新的StackPane();
root.getChildren().add(树);
原始阶段。设置场景(新场景(根,300250));
primaryStage.show();
}  
公共静态void main(字符串[]args){
发射(args);
}  
}  
谢谢你的阅读


Tran Quoc Ung

我做了,您应该在该页面中引用==>

CheckBoxTreeItem具有一个对象属性,我们不能在其中使用多个对象

试试这个

CheckBoxTreeItem<ImageView> chkbobj;
ImageView mv = new ImageView();
mv.setImage(new Image(getClass().getResourceStreamAs("abc.png")));
chkboobj.setGraphic(mv);
CheckBoxTreeItem chkbobj;
ImageView mv=新的ImageView();
mv.setImage(新图像(getClass().getResourceStreamAs(“abc.png”));
chkboobj.设定图形(mv);