Hallo zusammen
Ich möchte mit JavaFX eine Inventar Applikation schreiben. Die Daten zu einem Objekt werden in einer Array List gespeichert. Nun möchte ich zu jedem Produkt noch ein Bild dazu speichern. Dieses soll in einem Image View angezeigt werden, wenn ich das Produkt auswähle. Bis jetzt habe ich einen Filechosser und dort kann ich das Bild auswählen, dieses wird angezeigt, jedoch nicht gespeichert, d.h. wenn ich das Produkt wieder aufrufe ist das Bild wieder weg. Könnt ihr mir helfen, was ich mit diesem BufferedImage machen kann, damit ich dieses Bild abspeichern und wiederverwenden kann auf einer anderen Stage?
Vielen Dank für eure Hilfe
Hier der Code zum Filechooser und ImageView Feld
Ich möchte mit JavaFX eine Inventar Applikation schreiben. Die Daten zu einem Objekt werden in einer Array List gespeichert. Nun möchte ich zu jedem Produkt noch ein Bild dazu speichern. Dieses soll in einem Image View angezeigt werden, wenn ich das Produkt auswähle. Bis jetzt habe ich einen Filechosser und dort kann ich das Bild auswählen, dieses wird angezeigt, jedoch nicht gespeichert, d.h. wenn ich das Produkt wieder aufrufe ist das Bild wieder weg. Könnt ihr mir helfen, was ich mit diesem BufferedImage machen kann, damit ich dieses Bild abspeichern und wiederverwenden kann auf einer anderen Stage?
Vielen Dank für eure Hilfe
Hier der Code zum Filechooser und ImageView Feld
Java:
@FXML
private void uploadPicture() {
FileChooser fileChooser = new FileChooser();
// Set extension filter
FileChooser.ExtensionFilter extFilterJPG = new FileChooser.ExtensionFilter(
"JPG files (*.jpg)", "*.JPG");
FileChooser.ExtensionFilter extFilterPNG = new FileChooser.ExtensionFilter(
"PNG files (*.png)", "*.PNG");
fileChooser.getExtensionFilters().addAll(extFilterJPG, extFilterPNG);
File file = fileChooser.showOpenDialog(null);
try {
BufferedImage bufferedImage = ImageIO.read(file);
Image image = SwingFXUtils.toFXImage(bufferedImage, null);
productPicture.setImage(image);
} catch (IOException ex) {
Logger.getLogger(ToolEditDialogController.class.getName()).log(
Level.SEVERE, null, ex);
}
};