2013-10-17 45 views
0

我對TreeView組件有問題,它有CheckBoxTreeItem來檢查啓用或禁用,它非常選擇和取消選擇這個引用==>使用JavaFX UI控件:樹視圖|使用樹單元格編輯器的JavaFX 2教程和文檔。 這是樹視圖中的圖像具有CheckBoxTreeItem (http://docs.oracle.com/javafx/2/ui_controls/img/tree-view-checkbox1.png如何將圖標圖像添加到CheckBoxTreeItem中?

在現在,我想補充的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閱讀。

鎮國寺翁

回答

0

CheckBoxTreeItem有我們不能在它使用一個以上的對象中的一個對象的屬性。

試試這個..

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