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