Meine Frage ist, wie erreicht man eine automatische Größenanpassung von Bildern während der Manipulation mit der Größe des Anwendungsfensters in JavaFX? Könnte das direkt in SceneBuilder gemacht werden?JavaFX FXML-SceneBuilder-Bild-resizable
Antwort
Es würde mit der Bindung seiner WidthProperty
und HeightProperty
an die Größe des Fensters arbeiten. Nehmen wir an, dass der Knoten root
die Größe des Fensters widerspiegelt.
ImageView iv = new ImageView();
iv.fitWidthProperty().bind(root.widthProperty());
iv.fitHeightProperty().bind(root.heightProperty());
Jetzt kratzt es mit der Unterkunft Eltern (root
). Sie können auch den anderen Knoten auswählen oder einen Teil der Berechnung ausführen, um die Größe zu ändern.
Verwendung kein ImageView
, aber wenn Sie für eine Region
ein Bild als Hintergrundbild hinzufügen, das heißt die Region
der Größe verändert und so kann das Hintergrundbild werden können, wenn die entsprechenden Einstellungen verwendet werden. Z.B. Sie könnten die folgenden CSS-Eigenschaften zu verwenden, um das Stackoverflow-Logo in einem Region
enthalten.
-fx-background-image: url('http://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-logo.png?v=9c558ec15d8a');
-fx-background-size: contain;
-fx-background-repeat: no-repeat;
-fx-background-position: center;
(In dem obigen Code des Eigenschaftsname und der Wert von :
getrennt sind und die ;
ist nicht Teil des Wertes Es ist geschrieben, wie Sie es in der Regel in einem CSS-Stylesheet schreiben würden.)
Sie contain
mit stretch
ersetzen können, um nicht das Seitenverhältnis zu erhalten. In diesem Fall benötigen Sie die Eigenschaft -fx-background-position
nicht.
Mehr Informationen über die verwendeten Eigenschaften können im CSS doc for Region
.
finden Dies sollte so lange arbeiten, wie Sie es in die Region
hinzufügen, die der Größe verändert wird. Wenn Sie das Bild auf die gesamte Szenengröße skalieren möchten, müssen Sie die Eigenschaften im Stammverzeichnis Pane
festlegen.
Ansonsten müssten Sie wahrscheinlich ein benutzerdefiniertes Steuerelement schreiben. (AFAIK ist es nicht möglich, Expression-Binding von SceneBuilder zu verwenden.)
- 1. JavaFX Mehrere Farben in textarea (JavaFX 8)
- 2. JavaFX Projektstruktur
- 3. JavaFX Designer
- 4. Javafx-Webbrowserknoten?
- 5. JavaFX-Projekte
- 6. JavaFX Duplikationsfenster
- 7. JavaFX - Speicherverbrauch
- 8. JavaFX onMouseclicked
- 9. CubicCurve JavaFX
- 10. JavaFX Drucken
- 11. JavaFX: CellValueFactory
- 12. JavaFX - Druckgröße
- 13. javafx scrollbar
- 14. JavaFX-Eigenschaftsbindung
- 15. JavaFX-InvocationTargetException
- 16. JavaFX-Befehlsverknüpfungsdialog
- 17. JavaFX getIcon()
- 18. JavaFX: Exception in thread "JavaFX Anwendung Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
- 19. JavaFX: Eingebettetes JavaFX-Applet verliert Breite und Höhe?
- 20. JavaFX: Einbindung eines anderen Browsers als Webview mit JavaFX
- 21. JavaFX - CSS Styling Listview
- 22. JavaFX primaryStage Fensterrahmen entfernen?
- 23. Sofortfarbe in JavaFX erzwingen
- 24. JavaFX HTMLEditor - Bildfunktion einfügen
- 25. Rechtsklick in JavaFX?
- 26. JavaFX, TableView und JPA
- 27. JavaFX für iphone ipad
- 28. JavaFX 2 und Internationalisierung
- 29. JavaFX 2.0 Subfenster
- 30. JavaFX-Pakete nicht gefunden
Verwandte: [Ändern der Größe von Bildern an den übergeordneten Knoten] (http://stackoverflow.com/questions/12630296/resizing-images-to-fit-the- Parent-Node) und [Wie skaliere ich ein Bild, wenn ich die Größe des Fensters in JavaFX ändere] (http://stackoverflow.com/questions/22993550/how-to-resize-an-image-when-resizing-the-window-in -javafx) – jewelsea