2016-11-21 3 views
1

제목에서 알 수 있듯이 CellFactory을 설정하여 Image를 TableView의 열에 삽입해야하지만 FileChooser를 통해 해당 이미지가 경로에 표시되지 않습니다. 표. 그러나 첫 번째 행을 선택하면 거기에 뭔가있는 것처럼 강조 표시됩니다.JavaFX CellFactory를 사용하여 TableView에 이미지 넣기

@FXML 
private void initialize() 
{ 
    TableColumn thumbNail = new TableColumn("Photo"); 
    thumbNail.setCellValueFactory(new PropertyValueFactory("image")); 
    thumbNail.setPrefWidth(200); 

    thumbNail.setCellFactory(new Callback<TableColumn<Image, Photo>, TableCell>() 
    { 
     @Override 
     public TableCell<Image, Photo> call(TableColumn<Image, Photo> param) 
     { 
      TableCell<Image, Photo> cell = new TableCell<Image, Photo>() 
      { 
       ImageView img = new ImageView(); 
       @Override 
       public void updateItem(Photo item, boolean empty) 
       { 
        if(item != null) 
        { 
         HBox box = new HBox(); 
         box.setSpacing(10); 
         VBox vbox = new VBox(); 
         vbox.getChildren().add(new Label("THIS")); 
         vbox.getChildren().add(new Label("DATE")); 

         img.setFitHeight(50); 
         img.setFitWidth(50); 
         img.setImage(new Image(new File(item.getPath()).toURI().toString())); 

         box.getChildren().addAll(img, vbox); 
         setGraphic(box); 
        } 
       } 
      }; 
      return cell; 
     } 
    }); 
    photoView.getColumns().addAll(thumbNail); 
    loadScreen(); 
} 

// Load the album contents. 
public void loadScreen() 
{ 
    if(imgList != null) 
    { 
     imgList.clear(); 
    } 
    if(currUser != null && thisAlbum.getPhotoList() != null) 
    { 
     imgList = FXCollections.observableArrayList(thisAlbum.getPhotoList()); 
     //FXCollections.sort(obsList); 

     photoView.setItems(imgList); 
    } 
    if(imgList == null) 
    { 
     photoView.setPlaceholder(new Label("No Photos In List")); 
    } 

내가 잘못 가고, 또는 어떻게이 문제를 해결하기 위해 시도하는 무엇 확실하지 않다 : 여기 내 컨트롤러 클래스 내 코드의 조각이다. 어떤 도움을 주셔서 감사합니다!

답변

1

이미지의 경로가 올바른지 확인하십시오. 그렇지 않으면 이미지 셀에 사진이 표시되지 않습니다 (놀랍게도 예외가 발생하지 않음).

추신 : 귀하의 코드 (아마도 소스 중 하나)의 약간 수정 된 버전을 발견했습니다 : TableView Cell Modify in JavaFX.

+0

경로가 올바른지 확인하기 위해 콘솔에 출력합니다. 이 링크는 실제로 코드를 작성하는 데 도움이되는 곳입니다. – Hamon148

+0

@ Hamon148 나는 혼란 스럽다. 왜 이미지가로드되지 않는지 재현 할 수 없다. 전체 프로젝트를 github 또는 파일 호스팅 플랫폼에 업로드 할 수 있습니까? 아니면 SSCCE를 작성할 수 있습니까? – fireandfuel

관련 문제