Я пытаюсь отобразить изображение для объекта Car в табличном представлении, я создал класс CarDisplayModel для отображения соответствующих значений в столбцах таблицы из наблюдаемой коллекции, у меня есть 2 столбца, содержащих строковые значения иодно целое число, все из которых отображаются нормально, у меня также есть изображение автомобиля, которое я хочу отобразить, но оно будет отображать только изображение @ Hashcode, а не само изображение.
Реализация, которую я сейчас имею, состоит в следующем:
Класс модели дисплея:
private ObjectProperty<Image> CarImage;
private SimpleStringProperty CarMake;
private SimpleStringProperty CarModel;
private SimpleDoubleProperty CarPrice;
public CarDisplayModel(Image carImage, String carMake, String carModel, Double carPrice) {
this.CarImage = new SimpleObjectProperty<>(carImage);
this.CarMake = new SimpleStringProperty(carMake);
this.CarModel = new SimpleStringProperty(carModel);
this.CarPrice = new SimpleDoubleProperty(carPrice);
}
public Image getCarImage() {
return CarImage.get();
}
public void setCarImage(Image displayCarImage) {
this.CarImage = new SimpleObjectProperty<>(displayCarImage);
}
Реализация метода инициализации на контроллере для файла FXML:
try {
OutputStream targetFile = new FileOutputStream(s + "\\" + imageUrl);
targetFile.write(fileBytes);
targetFile.close();
File f = new File(s + imageUrl);
carImage = new Image(f.toURI().toString());
} catch (IOException e) {
e.printStackTrace();
}
Car car = new Car(regplate, mileage, bhp, price, engineSize, topSpeed, make, model, carImage, imageUrl);
CarMake.setCellValueFactory(new PropertyValueFactory<>("CarMake"));
CarModel.setCellValueFactory(new PropertyValueFactory<>("CarModel"));
CarPrice.setCellValueFactory(new PropertyValueFactory<>("CarPrice"));
CarImage.setCellValueFactory(new PropertyValueFactory<>("CarImage"));
ObservableList<CarDisplayModel> carDisplayModel = FXCollections.observableArrayList(
new CarDisplayModel(car.getCarDisplayPicture(), car.getMake(), car.getModel(), car.getPrice()));
carSelectionTable.setItems(carDisplayModels);
}
Вывод, который я в данный момент получаю:
Таблица текущих выходных данных
Использование контроллера ImageView и попытка отобразить одно и то же изображение прекрасно, поэтому мне интересно, будет ли это реализовано в реализации ObjectProperty илиЭлемент управления TableView. Недавно я столкнулся с похожей и гораздо более распространенной проблемой необходимости переопределения toStri.Спрашиваю метод, который возвращает действительное значение, а не String @ HashValue. Интересно, существует ли аналогичный способ решения этой проблемы.
Буду признателен за любой совет, спасибо за ваше время.