JavaFX Image Skalierung in Scrollpane, Scrollpane resized sich nicht

saschx

Mitglied
Hallo zusammen,

ich habe bis jetzt eine relativ einfache JavaFX Anwendung in der ich ein Bild in eine ImageView lade die von einem Scrollpane umgeben ist. Weiterhin gibt es einen Slider mit dem ich das Bild skaliere.

Meine FXML Datei sieht folgendermaßen aus:

HTML:
<AnchorPane id="AnchorPane" prefHeight="496.0" prefWidth="600.0" styleClass="mainFxmlClass" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.swt.smoebius.truckscanner.controller.MainSceneController">
  <children>
      <ScrollPane fx:id="picScrollPane" fitToHeight="true" fitToWidth="true" prefHeight="600.0" prefWidth="800.0" style="-fx-border-color: red;" AnchorPane.bottomAnchor="70.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
         <content>
            <ImageView fx:id="imageView" pickOnBounds="true" preserveRatio="true" scaleX="0.5" scaleY="0.5" />
         </content>
      </ScrollPane>
      <VBox prefHeight="45.0" prefWidth="180.0" spacing="2.0" AnchorPane.bottomAnchor="20.0" AnchorPane.leftAnchor="20.0">
         <children>
            <Label alignment="CENTER" contentDisplay="CENTER" prefHeight="17.0" prefWidth="142.0" text="Zoom" textAlignment="CENTER">
               <font>
                  <Font name="System Bold" size="12.0" />
               </font>
            </Label>
            <HBox prefHeight="100.0" prefWidth="200.0" spacing="10.0">
               <children>
                  <Slider fx:id="zoomSlider" blockIncrement="10" majorTickUnit="100.0" max="300" min="10" minorTickCount="50" snapToTicks="true" value="50" />
                  <Label fx:id="percentLabel" text="50%" />
               </children>
            </HBox>
         </children>
      </VBox>
      <HBox id="HBox" alignment="CENTER" layoutX="328.0" layoutY="10.0" prefHeight="46.0" prefWidth="262.0" spacing="15.0" AnchorPane.bottomAnchor="10.0" AnchorPane.rightAnchor="10.0">
         <children>
            <Button fx:id="retakePicButton1" mnemonicParsing="false" onAction="#retakePicture" text="Bild erneut aufnehmen" />
            <Button fx:id="saveButton1" mnemonicParsing="false" onAction="#savePicture" text="Bild Speichern" />
         </children>
      </HBox>
  </children>
</AnchorPane>

In meiner Controller Klasse habe ich nun einen Listener an den Slider gehangen der meine Bild ensprechend skaliert:

Java:
@Override
  public void initialize(URL url, ResourceBundle rb) {
    // TODO
   
    zoomSlider.valueProperty().addListener((observable, oldValue, newValue) -> {
      System.out.println("Slider Value Changed (newValue: " + newValue.intValue() + ")");
      percentLabel.setText(newValue.intValue()+"%");
      imageView.setScaleX(newValue.doubleValue()/100);
      imageView.setScaleY(newValue.doubleValue()/100);

    });
  }

Das Skalieren funktioniert auch so weit. Folgendes Verhalten gefällt mir aber nicht:
- da ich das Bild beim Start auf 50% skaliere, sich aber das Scrollpane auf 100% Bildgröße einrichtet, habe ich jetzt das Bild in der Mitte des Scollpanes mit entsprechend viel Rand außen herum.
- die Scrolleisten ändern Ihre Größe nur beim ändern der Fenstergröße, passen sich aber nicht an die Bildgröße an

Hat jemand einen Tipp wie ich das Scrollpane dazu bewegen kann seine Größe an das skallierte Bild anzupassen?
 

saschx

Mitglied
So, habs jetzt selbst heraus bekommen, vielleicht ist es für den einen oder anderen hilfreich.
Schade nur das man in diesem Forum keinerlei Unterstützung erhält. Ging mir mir bei 2 Fragen schon das 2. mal so :(

Java:
@Override
  public void initialize(URL url, ResourceBundle rb) {
    // TODO
   
    zoomSlider.valueProperty().addListener((observable, oldValue, newValue) -> {
      System.out.println("Slider Value Changed (newValue: " + newValue.intValue() + ")");
      percentLabel.setText(newValue.intValue()+"%");
      //originale Bildgröße in Pixel
      int origImgWidth = (int)image.getWidth();
      int origImgHeigth = (int)image.getHeight();
      // Bild prozentual vergrößern/verkleinern (Slidervalue)
      imageView.setFitWidth(origImgWidth*newValue.doubleValue()/100);
      imageView.setFitHeight(origImgHeigth*newValue.doubleValue()/100);
      // Imageview neu aufbereiten
      imageView.setPreserveRatio(true);
      imageView.setSmooth(true);
      imageView.setCache(true);
      imageView.setImage(image);
      // Imageview wieder an Scrollpane binden
      picScrollPane.setContent(null);
      picScrollPane.setContent(imageView);
     
    });
  }
 

Tom299

Bekanntes Mitglied
Beim nächsten Mal vielleicht neben dem FXML auch mal den Controller-Code posten, dann würden sich bestimmt auch einige das Problem mal anschauen. Aber so ist das zu viel Aufwand und man hat auch nicht immer für alles Zeit oder die Kenntnisse
 

Flown

Administrator
Mitarbeiter
Das tut mir echt leid, dass dir hier nicht geholfen werden kann.
Anscheinend stellst du zu spezifische Fragen, die keiner auf die schnelle lösen kann/will.

Für das nächste Mal ist es sicher von Vorteil ein abgespecktes, lauffähiges Programm zu posten, damit sich potentielle Helfer auch reindenken können.

Auf jeden Fall wird dein Beitrag gelesen.
 

saschx

Mitglied
Mein Controller hatte bis dato genau den Code den ich in meinem ersten Post gepostet hatte.
Wenn sich wenigstens jemand geregt hätte und gesagt das er noch weitere Infos brauch, dann hätte ich die auch zur Verfügung gestellt. Nur leider kam ja gar keine Reaktion.
Na hoffentlich kann eventuell jemand mit meinem Lösungsweg was anfangen...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Luk10 AWT Image und die Skalierung! AWT, Swing, JavaFX & SWT 3
G Performancesteigerung bei Image skalierung AWT, Swing, JavaFX & SWT 3
XWing Swing Image anzeigen und probleme mit klassen AWT, Swing, JavaFX & SWT 3
Telisti Javafx Image wird nicht richtig integiert AWT, Swing, JavaFX & SWT 8
K JavaFX Bildergalerie aus Image Ordner laden AWT, Swing, JavaFX & SWT 3
JMölleri Swing Image wird unscharf dargestellt AWT, Swing, JavaFX & SWT 2
L AWT .gif image transparent machen AWT, Swing, JavaFX & SWT 3
kodela angezeigtes Image entfernen AWT, Swing, JavaFX & SWT 1
R Java, GUI, Hintergrundbild, Image, AWT, Swing, JavaFX & SWT 4
R Swing Background Image in JFrame implementieren AWT, Swing, JavaFX & SWT 40
T Swing Buffered Image anzeigen AWT, Swing, JavaFX & SWT 45
L Image kann nicht gefunden werden AWT, Swing, JavaFX & SWT 1
S Stretch Image in ImageView AWT, Swing, JavaFX & SWT 4
N Swing Image aus Web laden und in Icon umwandeln AWT, Swing, JavaFX & SWT 4
Fiedlerdan Image-Pfad Probleme nach Export aus Eclipse AWT, Swing, JavaFX & SWT 31
L JavaFX Image mit Blureffect AWT, Swing, JavaFX & SWT 2
Bluedaishi JavaFX Button Image aus Datenbank AWT, Swing, JavaFX & SWT 13
F javaxt.io.Image getBufferedImage liefert null AWT, Swing, JavaFX & SWT 1
Yjuq JavaFX Custom Control - Image resize AWT, Swing, JavaFX & SWT 0
D Java FX Image in einer Webanwendung annotieren und den Bereich ausschneiden AWT, Swing, JavaFX & SWT 0
I Bild über FXML (ImageView, Image) anzeigen AWT, Swing, JavaFX & SWT 1
T Image Loader lädt Bild nicht AWT, Swing, JavaFX & SWT 10
J 2D-Grafik Background Image Klasse AWT, Swing, JavaFX & SWT 14
Q AWT TicTacToe Image auf Button hinzufügen AWT, Swing, JavaFX & SWT 5
BreakdownBob Swing JLabel verschwindet hinter Image AWT, Swing, JavaFX & SWT 2
L JavaFX leeres weißes Image - javafx.scene.image.Image AWT, Swing, JavaFX & SWT 2
L JavaFX Image im ImageView auf Scroll Listener reagieren AWT, Swing, JavaFX & SWT 5
Naxon89 JavaFX Image wird nicht korrekt geladen AWT, Swing, JavaFX & SWT 3
W Javafx - Image soll sich mit der Camera mitbewegen AWT, Swing, JavaFX & SWT 1
B Graphics to Image AWT, Swing, JavaFX & SWT 3
L Image in anderes kopieren AWT, Swing, JavaFX & SWT 0
T Swing Image wird nicht geladen AWT, Swing, JavaFX & SWT 1
I Image im PopupMenu vom SystemTray AWT, Swing, JavaFX & SWT 8
F JavaFX Position von Image angeben/verändern AWT, Swing, JavaFX & SWT 2
M JavaFX Image View Würfel berechnen AWT, Swing, JavaFX & SWT 3
L JButton mit Image AWT, Swing, JavaFX & SWT 5
F Swing Image einem Button hinzufügen AWT, Swing, JavaFX & SWT 5
B Resize von Image nach Resize von Button AWT, Swing, JavaFX & SWT 1
T Image aus "nicht-src-ordner" AWT, Swing, JavaFX & SWT 5
vodkaz (javafx) Image Problem AWT, Swing, JavaFX & SWT 2
C Image laden und Speichern - Image wird auf JPanel nicht angezeigt AWT, Swing, JavaFX & SWT 4
M Image in JTable einfügen AWT, Swing, JavaFX & SWT 9
M Image aus MS Access anzeigen lassen AWT, Swing, JavaFX & SWT 9
H Image im Array per Knopfdruck ändern AWT, Swing, JavaFX & SWT 6
H Swing JList/JTable mit JButton, JTextField, Image, JComboBox und JLable AWT, Swing, JavaFX & SWT 2
P Image oder Icon auf Tooltip zeichnen AWT, Swing, JavaFX & SWT 4
G JavaFX Image vergrößern AWT, Swing, JavaFX & SWT 5
U Image mit Zeichenbereich rotieren AWT, Swing, JavaFX & SWT 3
P Speicherproblem SWT.Image in Nebula-Gallery AWT, Swing, JavaFX & SWT 3
L JavaFX: Bild in Image einlesen AWT, Swing, JavaFX & SWT 11
D Image soll langsam sichtbar werden AWT, Swing, JavaFX & SWT 4
D JLabel Image ausrichten AWT, Swing, JavaFX & SWT 2
Z Flackern trotz Offscreen Image / Doublebuffer, (+ Frage zu Pixelvergleich) AWT, Swing, JavaFX & SWT 25
bluerob Problem beim Image zeichnen via andere Klasse AWT, Swing, JavaFX & SWT 7
H Image Icon ersetzen AWT, Swing, JavaFX & SWT 8
I Image Button AWT, Swing, JavaFX & SWT 4
U IntBuffer zum Image konvertieren. AWT, Swing, JavaFX & SWT 9
S Eigene JComponent Image zeichnen AWT, Swing, JavaFX & SWT 3
T 2D-Grafik Slideshow (DoubleBuffering und Image transformieren/bewegen) AWT, Swing, JavaFX & SWT 6
K Swing Warum bleibt das Image immer gleich AWT, Swing, JavaFX & SWT 4
L Swing dynamisches Image-Panel in Layout einbinden AWT, Swing, JavaFX & SWT 10
R Image laden sehr langsam AWT, Swing, JavaFX & SWT 7
D Image.getScaledInstance() vs. Netzwerkverbindung??? AWT, Swing, JavaFX & SWT 2
reibi SWT Image viewer AWT, Swing, JavaFX & SWT 2
lumo SWT Image funktion auf ImageDaten AWT, Swing, JavaFX & SWT 9
A Applet .gif in applet Image nicht animiert angezeigt AWT, Swing, JavaFX & SWT 4
M Image wird nicht neugezeichnet nach dem Wechsel AWT, Swing, JavaFX & SWT 2
lumo SWT Image Pattern AWT, Swing, JavaFX & SWT 5
P Image mehrfach in ein BufferedImage zeichnen AWT, Swing, JavaFX & SWT 7
M Swing Image in JPanel als Componente AWT, Swing, JavaFX & SWT 2
P nicht sichtbares JPanel / JFrame als Image speichern AWT, Swing, JavaFX & SWT 3
T Image skaliert in Variable speichern AWT, Swing, JavaFX & SWT 6
S Image wird nicht (immer) in paintComponent gezeichnet? AWT, Swing, JavaFX & SWT 6
S Swing Image wird nicht geladen AWT, Swing, JavaFX & SWT 2
0 Mousecurser mit Image hinterlegen AWT, Swing, JavaFX & SWT 4
B Swing Drag&Drop mit Feedback (Image am Mauszeiger) AWT, Swing, JavaFX & SWT 7
N Java Choice Bilderausgabe - images - - image - AWT, Swing, JavaFX & SWT 2
D iText PdfPCell mit Image AWT, Swing, JavaFX & SWT 3
S 2D-Grafik Icon in Image (System Icons) AWT, Swing, JavaFX & SWT 2
S Button mit Image AWT, Swing, JavaFX & SWT 7
A Skaliertes Image pixelweise bearbeiten AWT, Swing, JavaFX & SWT 6
L Swing Image zur Laufzeit verändern AWT, Swing, JavaFX & SWT 6
F SWT GC drawText auf halbtransparentem Image AWT, Swing, JavaFX & SWT 21
G Swing JEdtitorPane und HTML Image Seite AWT, Swing, JavaFX & SWT 2
C Image mit Graphics2D zeichnen AWT, Swing, JavaFX & SWT 9
C Image performant skalieren AWT, Swing, JavaFX & SWT 5
D SWT Image Farbtiefe AWT, Swing, JavaFX & SWT 2
L Swing Auf unabhängiges Image-Objekt zeichnen AWT, Swing, JavaFX & SWT 8
lumo SWT Composite + Image + zeichnen AWT, Swing, JavaFX & SWT 4
V Ein Image als Button (nicht mit JButton(Icon)) AWT, Swing, JavaFX & SWT 5
D Image Viewer gesucht AWT, Swing, JavaFX & SWT 5
Kr0e Image schärfen AWT, Swing, JavaFX & SWT 2
R Bild drehen UND skalieren (Image bzw BufferedImage) AWT, Swing, JavaFX & SWT 5
T Image auf Image zeichnen AWT, Swing, JavaFX & SWT 2
E Warum ist offscreen (mit Image) schneller? AWT, Swing, JavaFX & SWT 11
G Swing Image speichern / 0 Byte AWT, Swing, JavaFX & SWT 7
H Image abspeichern AWT, Swing, JavaFX & SWT 4
B Swing Image als Hintergrund im JInternalFrame - Problem AWT, Swing, JavaFX & SWT 3
W Image in jar einbauen AWT, Swing, JavaFX & SWT 20
L JPanel als Image speichern AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben