@DefaultProperty(value="image") public class ImageView extends Node
ImageView
is a Node
used for painting images loaded with
Image
class.
This class allows resizing the displayed image (with or without preserving
the original aspect ratio) and specifying a viewport into the source image
for restricting the pixels displayed by this ImageView
.
Example code for displaying images
import javafx.application.Application;
import javafx.geometry.Rectangle2D;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class HelloMenu extends Application {
@Override public void start(Stage stage) {
// load the image
Image image = new Image("flower.png");
// simple displays ImageView the image as is
ImageView iv1 = new ImageView();
iv1.setImage(image);
// resizes the image to have width of 100 while preserving the ratio and using
// higher quality filtering method; this ImageView is also cached to
// improve performance
ImageView iv2 = new ImageView();
iv2.setImage(image);
iv2.setFitWidth(100);
iv2.setPreserveRatio(true);
iv2.setSmooth(true);
iv2.setCache(true);
// defines a viewport into the source image (achieving a "zoom" effect) and
// displays it rotated
ImageView iv3 = new ImageView();
iv3.setImage(image);
Rectangle2D viewportRect = new Rectangle2D(40, 35, 110, 110);
iv3.setViewport(viewportRect);
iv3.setRotate(90);
Group root = new Group();
Scene scene = new Scene(root);
scene.setFill(Color.BLACK);
HBox box = new HBox();
box.getChildren().add(iv1);
box.getChildren().add(iv2);
box.getChildren().add(iv3);
root.getChildren().add(box);
stage.setTitle("ImageView");
stage.setWidth(415);
stage.setHeight(200);
stage.setScene(scene);
stage.sizeToScene();
stage.show();
}
public static void main(String[] args) {
Application.launch(args);
}
}
The code above produces the following:
Type | Property and Description |
---|---|
DoubleProperty |
fitHeight
The height of the bounding box within which the source image is resized
as necessary to fit.
|
DoubleProperty |
fitWidth
The width of the bounding box within which the source image is resized as
necessary to fit.
|
ObjectProperty<Image> |
image
The
Image to be painted by this ImageView . |
BooleanProperty |
preserveRatio
Indicates whether to preserve the aspect ratio of the source image when
scaling to fit the image within the fitting bounding box.
|
BooleanProperty |
smooth
Indicates whether to use a better quality filtering algorithm or a faster
one when transforming or scaling the source image to fit within the
bounding box provided by
fitWidth and fitHeight . |
ObjectProperty<Rectangle2D> |
viewport
The rectangular viewport into the image.
|
DoubleProperty |
x
The current x coordinate of the
ImageView origin. |
DoubleProperty |
y
The current y coordinate of the
ImageView origin. |
accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, visible
Modifier and Type | Field and Description |
---|---|
static boolean |
SMOOTH_DEFAULT
Platform-dependent default value of the
smooth property. |
BASELINE_OFFSET_SAME_AS_HEIGHT
Constructor and Description |
---|
ImageView()
Allocates a new ImageView object.
|
ImageView(Image image)
Allocates a new ImageView object using the given image.
|
ImageView(String url)
Allocates a new ImageView object with image loaded from the specified
URL.
|
Modifier and Type | Method and Description |
---|---|
DoubleProperty |
fitHeightProperty()
The height of the bounding box within which the source image is resized
as necessary to fit.
|
DoubleProperty |
fitWidthProperty()
The width of the bounding box within which the source image is resized as
necessary to fit.
|
static List<CssMetaData<? extends Styleable,?>> |
getClassCssMetaData() |
List<CssMetaData<? extends Styleable,?>> |
getCssMetaData()
This method should delegate to
Node.getClassCssMetaData() so that
a Node's CssMetaData can be accessed without the need for reflection. |
double |
getFitHeight()
Gets the value of the property fitHeight.
|
double |
getFitWidth()
Gets the value of the property fitWidth.
|
Image |
getImage()
Gets the value of the property image.
|
Rectangle2D |
getViewport()
Gets the value of the property viewport.
|
double |
getX()
Gets the value of the property x.
|
double |
getY()
Gets the value of the property y.
|
ObjectProperty<Image> |
imageProperty()
The
Image to be painted by this ImageView . |
boolean |
isPreserveRatio()
Gets the value of the property preserveRatio.
|
boolean |
isSmooth()
Gets the value of the property smooth.
|
BooleanProperty |
preserveRatioProperty()
Indicates whether to preserve the aspect ratio of the source image when
scaling to fit the image within the fitting bounding box.
|
void |
setFitHeight(double value)
Sets the value of the property fitHeight.
|
void |
setFitWidth(double value)
Sets the value of the property fitWidth.
|
void |
setImage(Image value)
Sets the value of the property image.
|
void |
setPreserveRatio(boolean value)
Sets the value of the property preserveRatio.
|
void |
setSmooth(boolean value)
Sets the value of the property smooth.
|
void |
setViewport(Rectangle2D value)
Sets the value of the property viewport.
|
void |
setX(double value)
Sets the value of the property x.
|
void |
setY(double value)
Sets the value of the property y.
|
BooleanProperty |
smoothProperty()
Indicates whether to use a better quality filtering algorithm or a faster
one when transforming or scaling the source image to fit within the
bounding box provided by
fitWidth and fitHeight . |
ObjectProperty<Rectangle2D> |
viewportProperty()
The rectangular viewport into the image.
|
DoubleProperty |
xProperty()
The current x coordinate of the
ImageView origin. |
DoubleProperty |
yProperty()
The current y coordinate of the
ImageView origin. |
accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBaselineOffset, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isResizable, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookup, lookupAll, managedProperty, maxHeight, maxWidth, minHeight, minWidth, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, prefHeight, prefWidth, pressedProperty, pseudoClassStateChanged, queryAccessibleAttribute, relocate, removeEventFilter, removeEventHandler, requestFocus, resize, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, visibleProperty
public final ObjectProperty<Image> imageProperty
Image
to be painted by this ImageView
.getImage()
,
setImage(Image)
public final DoubleProperty xProperty
ImageView
origin.getX()
,
setX(double)
public final DoubleProperty yProperty
ImageView
origin.getY()
,
setY(double)
public final DoubleProperty fitWidthProperty
fitWidth
.
See preserveRatio
for information on interaction between image
view's fitWidth
, fitHeight
and preserveRatio
attributes.getFitWidth()
,
setFitWidth(double)
public final DoubleProperty fitHeightProperty
fitHeight
.
See preserveRatio
for information on interaction between image
view's fitWidth
, fitHeight
and preserveRatio
attributes.
getFitHeight()
,
setFitHeight(double)
public final BooleanProperty preserveRatioProperty
true
, it affects the dimensions of this
ImageView
in the following way *
fitWidth
is set, height is scaled to preserve ratio
fitHeight
is set, width is scaled to preserve ratio
false
, it affects the dimensions of this
ImageView
in the following way *
fitWidth
is set, image's view width is scaled to
match and height is unchanged;
fitHeight
is set, image's view height is scaled to
match and height is unchanged;
fitWidth x fitHeight
bonding box.isPreserveRatio()
,
setPreserveRatio(boolean)
public final BooleanProperty smoothProperty
fitWidth
and fitHeight
.
If set to true
a better quality filtering will be used, if set to
false
a faster but lesser quality filtering will be used.
The default value depends on platform configuration.
isSmooth()
,
setSmooth(boolean)
public final ObjectProperty<Rectangle2D> viewportProperty
If viewport
is null
, the entire image is displayed. If
viewport
is non-null
, only the portion of the image which
falls within the viewport will be displayed. If the image does not fully
cover the viewport then any remaining area of the viewport will be empty.
getViewport()
,
setViewport(Rectangle2D)
public static final boolean SMOOTH_DEFAULT
smooth
property.public ImageView()
public ImageView(String url)
The new ImageView(url)
has the same effect as
new ImageView(new Image(url))
.
url
- the string representing the URL from which to load the imageNullPointerException
- if URL is nullIllegalArgumentException
- if URL is invalid or unsupportedpublic ImageView(Image image)
image
- Image that this ImageView usespublic final void setImage(Image value)
Image
to be painted by this ImageView
.public final Image getImage()
Image
to be painted by this ImageView
.public final ObjectProperty<Image> imageProperty()
Image
to be painted by this ImageView
.getImage()
,
setImage(Image)
public final void setX(double value)
ImageView
origin.public final double getX()
ImageView
origin.public final DoubleProperty xProperty()
ImageView
origin.getX()
,
setX(double)
public final void setY(double value)
ImageView
origin.public final double getY()
ImageView
origin.public final DoubleProperty yProperty()
ImageView
origin.getY()
,
setY(double)
public final void setFitWidth(double value)
fitWidth
.
See preserveRatio
for information on interaction between image
view's fitWidth
, fitHeight
and preserveRatio
attributes.public final double getFitWidth()
fitWidth
.
See preserveRatio
for information on interaction between image
view's fitWidth
, fitHeight
and preserveRatio
attributes.public final DoubleProperty fitWidthProperty()
fitWidth
.
See preserveRatio
for information on interaction between image
view's fitWidth
, fitHeight
and preserveRatio
attributes.getFitWidth()
,
setFitWidth(double)
public final void setFitHeight(double value)
fitHeight
.
See preserveRatio
for information on interaction between image
view's fitWidth
, fitHeight
and preserveRatio
attributes.
public final double getFitHeight()
fitHeight
.
See preserveRatio
for information on interaction between image
view's fitWidth
, fitHeight
and preserveRatio
attributes.
public final DoubleProperty fitHeightProperty()
fitHeight
.
See preserveRatio
for information on interaction between image
view's fitWidth
, fitHeight
and preserveRatio
attributes.
getFitHeight()
,
setFitHeight(double)
public final void setPreserveRatio(boolean value)
true
, it affects the dimensions of this
ImageView
in the following way *
fitWidth
is set, height is scaled to preserve ratio
fitHeight
is set, width is scaled to preserve ratio
false
, it affects the dimensions of this
ImageView
in the following way *
fitWidth
is set, image's view width is scaled to
match and height is unchanged;
fitHeight
is set, image's view height is scaled to
match and height is unchanged;
fitWidth x fitHeight
bonding box.public final boolean isPreserveRatio()
true
, it affects the dimensions of this
ImageView
in the following way *
fitWidth
is set, height is scaled to preserve ratio
fitHeight
is set, width is scaled to preserve ratio
false
, it affects the dimensions of this
ImageView
in the following way *
fitWidth
is set, image's view width is scaled to
match and height is unchanged;
fitHeight
is set, image's view height is scaled to
match and height is unchanged;
fitWidth x fitHeight
bonding box.public final BooleanProperty preserveRatioProperty()
true
, it affects the dimensions of this
ImageView
in the following way *
fitWidth
is set, height is scaled to preserve ratio
fitHeight
is set, width is scaled to preserve ratio
false
, it affects the dimensions of this
ImageView
in the following way *
fitWidth
is set, image's view width is scaled to
match and height is unchanged;
fitHeight
is set, image's view height is scaled to
match and height is unchanged;
fitWidth x fitHeight
bonding box.isPreserveRatio()
,
setPreserveRatio(boolean)
public final void setSmooth(boolean value)
fitWidth
and fitHeight
.
If set to true
a better quality filtering will be used, if set to
false
a faster but lesser quality filtering will be used.
The default value depends on platform configuration.
public final boolean isSmooth()
fitWidth
and fitHeight
.
If set to true
a better quality filtering will be used, if set to
false
a faster but lesser quality filtering will be used.
The default value depends on platform configuration.
public final BooleanProperty smoothProperty()
fitWidth
and fitHeight
.
If set to true
a better quality filtering will be used, if set to
false
a faster but lesser quality filtering will be used.
The default value depends on platform configuration.
isSmooth()
,
setSmooth(boolean)
public final void setViewport(Rectangle2D value)
If viewport
is null
, the entire image is displayed. If
viewport
is non-null
, only the portion of the image which
falls within the viewport will be displayed. If the image does not fully
cover the viewport then any remaining area of the viewport will be empty.
public final Rectangle2D getViewport()
If viewport
is null
, the entire image is displayed. If
viewport
is non-null
, only the portion of the image which
falls within the viewport will be displayed. If the image does not fully
cover the viewport then any remaining area of the viewport will be empty.
public final ObjectProperty<Rectangle2D> viewportProperty()
If viewport
is null
, the entire image is displayed. If
viewport
is non-null
, only the portion of the image which
falls within the viewport will be displayed. If the image does not fully
cover the viewport then any remaining area of the viewport will be empty.
getViewport()
,
setViewport(Rectangle2D)
public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
public List<CssMetaData<? extends Styleable,?>> getCssMetaData()
Node.getClassCssMetaData()
so that
a Node's CssMetaData can be accessed without the need for reflection.getCssMetaData
in interface Styleable
getCssMetaData
in class Node
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 2008, 2020, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.