2015-12-08 5 views
0

Попытка отображения изображений в виде пиктограмм на ListView в gridpaneДобавление ListView (изображений) в GridPane?

ObservableList<File> imageFiles = FXCollections.observableArrayList(); 
List<File> list = fileChooser.showOpenMultipleDialog(null); 

    if(list != null){ 
     for(File file : list){ 
      //Image image = new Image(file.toURI().toString()); 
      final Image image = new Image(new FileInputStream(file), 150, 150, true, false); 
      ImageView imageView = new ImageView(); 
      imageView = createImageView(image); 

      if(check1.isSelected()){ 


       VBox vl = new VBox(); 
       vl.getChildren().addAll(imageView); 

       ListView<File> imageFilesList = new ListView<>(imageFiles); 
       imageFilesList.setCellFactory(listview -> new ListCell<File>(){ 
        private final ImageView imageView = new ImageView(); 
        { 
         imageView.setFitHeight(80); 
         imageView.setFitWidth(160); 
         imageView.setPreserveRatio(true); 
        } 

        @Override 
        public void updateItem(File file, boolean empty) { 
         super.updateItem(file, empty); 
         if (empty) { 
          setText(null); 
          setGraphic(null); 
         } else { 
          setText(file.getAbsolutePath().toString()); 
          imageView.setImage(new Image(file.getAbsolutePath().toString(), true)); 
          setGraphic(imageView); 
         } 
        } 
        }); 

       grid.add(imageFilesList, imageCol, imageRow); 

Я перепробовал все, как я могу, это мой выход, что мне не хватает? Почему GridPane по-прежнему загружает его в миниатюру?

image

ответ

0

Там нет изображения показаны потому,

1) Вид сетки содержит ListView imageFilesList, и эта точка зрения содержит список imageFiles. Но вы не добавляете файлы изображений в imageFiles.
2) Файлы изображений, выбранные через fileChooser, добавляются к VBox vl. Однако этот vbox не добавляется в gridpane.

Смежные вопросы