【问题标题】:How to add the icon image into the CheckBoxTreeItem?如何将图标图像添加到 CheckBoxTreeItem?
【发布时间】:2013-10-17 02:22:58
【问题描述】:

我的 TreeView 组件有问题,它有 CheckBoxTreeItem 来检查启用或禁用,这个参考非常有选择和取消选择 ==> 使用 JavaFX UI 控件:树视图 | JavaFX 2 教程和文档以及使用树单元编辑器。 这是带有树视图的图像有 CheckBoxTreeItem (http://docs.oracle.com/javafx/2/ui_controls/img/tree-view-checkbox1.png)

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

谁能帮我解决这个问题?

当我这样设置时我看到了 tree.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);  
    }  
}  

感谢 4 您的阅读。

陈国荣

【问题讨论】:

    标签: javafx-2 javafx


    【解决方案1】:

    我做到了,您应该在该页面中参考 ==> https://forums.oracle.com/message/11232268#11232268

    【讨论】:

      【解决方案2】:

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

      试试这个..

      CheckBoxTreeItem<ImageView> chkbobj;
      ImageView mv = new ImageView();
      mv.setImage(new Image(getClass().getResourceStreamAs("abc.png")));
      chkboobj.setGraphic(mv);
      

      【讨论】:

        猜你喜欢
        • 2012-10-02
        • 1970-01-01
        • 2020-06-08
        • 2017-12-16
        • 1970-01-01
        • 2011-09-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多