Skip navigation links
JavaFX 8
javafx.scene

  • java.lang.Object
    • javafx.scene.Node
    • All Implemented Interfaces:
      Styleable, EventTarget
      Direct Known Subclasses:
      Camera, Canvas, ImageView, LightBase, MediaView, Parent, Shape, Shape3D, SubScene, SwingNode


      @IDProperty(value="id")
      public abstract class Node
      extends Object
      implements Node
      extends Object
      implements EventTarget, Styleable
      Base class for scene graph nodes. A scene graph is a set of tree data structures where every item has zero or one parent, and each item is either a "leaf" with zero sub-items or a "branch" with zero or more sub-items.

      Each item in the scene graph is called a Node. Branch nodes are of type Parent, whose concrete subclasses are Group, Region, and Control, or subclasses thereof.

      Leaf nodes are classes such as Rectangle, Text, ImageView, MediaView, or other such leaf classes which cannot have children. Only a single node within each scene graph tree will have no parent, which is referred to as the "root" node.

      There may be several trees in the scene graph. Some trees may be part of a Scene, in which case they are eligible to be displayed. Other trees might not be part of any Scene.

      A node may occur at most once anywhere in the scene graph. Specifically, a node must appear no more than once in all of the following: as the root node of a Scene, the children ObservableList of a Parent, or as the clip of a Node.

      The scene graph must not have cycles. A cycle would exist if a node is an ancestor of itself in the tree, considering the Group content ObservableList, Parent children ObservableList, and Node clip relationships mentioned above.

      If a program adds a child node to a Parent (including Group, Region, etc) and that node is already a child of a different Parent or the root of a Scene, the node is automatically (and silently) removed from its former parent. If a program attempts to modify the scene graph in any other way that violates the above rules, an exception is thrown, the modification attempt is ignored and the scene graph is restored to its previous state.

      It is possible to rearrange the structure of the scene graph, for example, to move a subtree from one location in the scene graph to another. In order to do this, one would normally remove the subtree from its old location before inserting it at the new location. However, the subtree will be automatically removed as described above if the application doesn't explicitly remove it.

      Node objects may be constructed and modified on any thread as long they are not yet attached to a Scene. An application must attach nodes to a Scene, and modify nodes that are already attached to a Scene, on the JavaFX Application Thread.

      String ID

      Each node in the scene graph can be given a unique id. This id is much like the "id" attribute of an HTML tag in that it is up to the designer and developer to ensure that the id is unique within the scene graph. A convenience function called lookup(String) can be used to find a node with a unique id within the scene graph, or within a subtree of the scene graph. The id can also be used identify nodes for applying styles; see the CSS section below.

      Coordinate System

      The Node class defines a traditional computer graphics "local" coordinate system in which the x axis increases to the right and the y axis increases downwards. The concrete node classes for shapes provide variables for defining the geometry and location of the shape within this local coordinate space. For example, Rectangle provides x, y, width, height variables while Circle provides centerX, centerY, and radius.

      At the device pixel level, integer coordinates map onto the corners and cracks between the pixels and the centers of the pixels appear at the midpoints between integer pixel locations. Because all coordinate values are specified with floating point numbers, coordinates can precisely point to these corners (when the floating point values have exact integer values) or to any location on the pixel. For example, a coordinate of (0.5, 0.5) would point to the center of the upper left pixel on the Stage. Similarly, a rectangle at (0, 0) with dimensions of 10 by 10 would span from the upper left corner of the upper left pixel on the Stage to the lower right corner of the 10th pixel on the 10th scanline. The pixel center of the last pixel inside that rectangle would be at the coordinates (9.5, 9.5).

      In practice, most nodes have transformations applied to their coordinate system as mentioned below. As a result, the information above describing the alignment of device coordinates to the pixel grid is relative to the transformed coordinates, not the local coordinates of the nodes. The Shape class describes some additional important context-specific information about coordinate mapping and how it can affect rendering.

      Transformations

      Any Node can have transformations applied to it. These include translation, rotation, scaling, or shearing.

      A translation transformation is one which shifts the origin of the node's coordinate space along either the x or y axis. For example, if you create a Rectangle which is drawn at the origin (x=0, y=0) and has a width of 100 and a height of 50, and then apply a Translate with a shift of 10 along the x axis (x=10), then the rectangle will appear drawn at (x=10, y=0) and remain 100 points wide and 50 tall. Note that the origin was shifted, not the x variable of the rectangle.

      A common node transform is a translation by an integer distance, most often used to lay out nodes on the stage. Such integer translations maintain the device pixel mapping so that local coordinates that are integers still map to the cracks between pixels.

      A rotation transformation is one which rotates the coordinate space of the node about a specified "pivot" point, causing the node to appear rotated. For example, if you create a Rectangle which is drawn at the origin (x=0, y=0) and has a width of 100 and height of 30 and you apply a Rotate with a 90 degree rotation (angle=90) and a pivot at the origin (pivotX=0, pivotY=0), then the rectangle will be drawn as if its x and y were zero but its height was 100 and its width -30. That is, it is as if a pin is being stuck at the top left corner and the rectangle is rotating 90 degrees clockwise around that pin. If the pivot point is instead placed in the center of the rectangle (at point x=50, y=15) then the rectangle will instead appear to rotate about its center.

      Note that as with all transformations, the x, y, width, and height variables of the rectangle (which remain relative to the local coordinate space) have not changed, but rather the transformation alters the entire coordinate space of the rectangle.

      A scaling transformation causes a node to either appear larger or smaller depending on the scaling factor. Scaling alters the coordinate space of the node such that each unit of distance along the axis in local coordinates is multipled by the scale factor. As with rotation transformations, scaling transformations are applied about a "pivot" point. You can think of this as the point in the Node around which you "zoom". For example, if you create a Rectangle with a strokeWidth of 5, and a width and height of 50, and you apply a Scale with scale factors (x=2.0, y=2.0) and a pivot at the origin (pivotX=0, pivotY=0), the entire rectangle (including the stroke) will double in size, growing to the right and downwards from the origin.

      A shearing transformation, sometimes called a skew, effectively rotates one axis so that the x and y axes are no longer perpendicular.

      Multiple transformations may be applied to a node by specifying an ordered chain of transforms. The order in which the transforms are applied is defined by the ObservableList specified in the transforms variable.

      Bounding Rectangles

      Since every Node has transformations, every Node's geometric bounding rectangle can be described differently depending on whether transformations are accounted for or not.

      Each Node has a read-only boundsInLocal variable which specifies the bounding rectangle of the Node in untransformed local coordinates. boundsInLocal includes the Node's shape geometry, including any space required for a non-zero stroke that may fall outside the local position/size variables, and its clip and effect variables.

      Each Node also has a read-only boundsInParent variable which specifies the bounding rectangle of the Node after all transformations have been applied, including those set in transforms, scaleX/scaleY, rotate, translateX/translateY, and layoutX/layoutY. It is called "boundsInParent" because the rectangle will be relative to the parent's coordinate system. This is the 'visual' bounds of the node.

      Finally, the layoutBounds variable defines the rectangular bounds of the Node that should be used as the basis for layout calculations and may differ from the visual bounds of the node. For shapes, Text, and ImageView, layoutBounds by default includes only the shape geometry, including space required for a non-zero strokeWidth, but does not include the effect, clip, or any transforms. For resizable classes (Regions and Controls) layoutBounds will always map to 0,0 width x height.

      The image shows a node without any transformation and its boundsInLocal:

      If we rotate the image by 20 degrees we get following result:

      The red rectangle represents boundsInParent in the coordinate space of the Node's parent. The boundsInLocal stays the same as in the first image, the green rectangle in this image represents boundsInLocal in the coordinate space of the Node.

      The images show a filled and stroked rectangle and their bounds. The first rectangle [x:10.0 y:10.0 width:100.0 height:100.0 strokeWidth:0] has the following bounds bounds: [x:10.0 y:10.0 width:100.0 height:100.0]. The second rectangle [x:10.0 y:10.0 width:100.0 height:100.0 strokeWidth:5] has the following bounds: [x:7.5 y:7.5 width:105 height:105] (the stroke is centered by default, so only half of it is outside of the original bounds; it is also possible to create inside or outside stroke). Since neither of the rectangles has any transformation applied, boundsInParent and boundsInLocal are the same.

      CSS

      The Node class contains id, styleClass, and style variables that are used in styling this node from CSS. The id and styleClass variables are used in CSS style sheets to identify nodes to which styles should be applied. The style variable contains style properties and values that are applied directly to this node.

      For further information about CSS and how to apply CSS styles to nodes, see the CSS Reference Guide.

      Since:
      JavaFX 2.0
      • Property Detail

        • parent

          public final ReadOnlyObjectProperty<Parent> parentProperty
          The parent of this Node. If this Node has not been added to a scene graph, then parent will be null.
          Default value:
          null
          See Also:
          getParent()
        • scene

          public final ReadOnlyObjectProperty<Scene> sceneProperty
          The Scene that this Node is part of. If the Node is not part of a scene, then this variable will be null.
          Default value:
          null
          See Also:
          getScene()
        • id

          public final StringProperty idProperty
          The id of this Node. This simple string identifier is useful for finding a specific Node within the scene graph. While the id of a Node should be unique within the scene graph, this uniqueness is not enforced. This is analogous to the "id" attribute on an HTML element (CSS ID Specification).

          For example, if a Node is given the id of "myId", then the lookup method can be used to find this node as follows: scene.lookup("#myId");.

          Default value:
          null
          See Also:
          getId(), setId(String)
        • style

          public final StringProperty styleProperty
          A string representation of the CSS style associated with this specific Node. This is analogous to the "style" attribute of an HTML element. Note that, like the HTML style attribute, this variable contains style properties and values and not the selector portion of a style rule.
          Default value:
          empty string
          See Also:
          getStyle(), setStyle(String)
        • visible

          public final BooleanProperty visibleProperty
          Specifies whether this Node and any subnodes should be rendered as part of the scene graph. A node may be visible and yet not be shown in the rendered scene if, for instance, it is off the screen or obscured by another Node. Invisible nodes never receive mouse events or keyboard focus and never maintain keyboard focus when they become invisible.
          Default value:
          true
          See Also:
          isVisible(), setVisible(boolean)
        • cursor

          public final ObjectProperty<Cursor> cursorProperty
          Defines the mouse cursor for this Node and subnodes. If null, then the cursor of the first parent node with a non-null cursor will be used. If no Node in the scene graph defines a cursor, then the cursor of the Scene will be used.
          Default value:
          null
          See Also:
          getCursor(), setCursor(Cursor)
        • opacity

          public final DoubleProperty opacityProperty
          Specifies how opaque (that is, solid) the Node appears. A Node with 0% opacity is fully translucent. That is, while it is still visible and rendered, you generally won't be able to see it. The exception to this rule is when the Node is combined with a blending mode and blend effect in which case a translucent Node may still have an impact in rendering. An opacity of 50% will render the node as being 50% transparent.

          A visible node with any opacity setting still receives mouse events and can receive keyboard focus. For example, if you want to have a large invisible rectangle overlay all Nodes in the scene graph in order to intercept mouse events but not be visible to the user, you could create a large Rectangle that had an opacity of 0%.

          Opacity is specified as a value between 0 and 1. Values less than 0 are treated as 0, values greater than 1 are treated as 1.

          On some platforms ImageView might not support opacity variable.

          There is a known limitation of mixing opacity < 1.0 with a 3D Transform. Opacity/Blending is essentially a 2D image operation. The result of an opacity < 1.0 set on a Group node with 3D transformed children will cause its children to be rendered in order without Z-buffering applied between those children.

          Default value:
          1.0
          See Also:
          getOpacity(), setOpacity(double)
        • blendMode

          public final ObjectProperty<BlendMode> blendModeProperty
          The BlendMode used to blend this individual node into the scene behind it. If this node happens to be a Group then all of the children will be composited individually into a temporary buffer using their own blend modes and then that temporary buffer will be composited into the scene using the specified blend mode. A value of null is treated as pass-though this means no effect on a parent such as a Group and the equivalent of SRC_OVER for a single Node.
          Default value:
          null
          See Also:
          getBlendMode(), setBlendMode(BlendMode)
        • clip

          public final ObjectProperty<Node> clipProperty
          Specifies a Node to use to define the the clipping shape for this Node. This clipping Node is not a child of this Node in the scene graph sense. Rather, it is used to define the clip for this Node.

          For example, you can use an ImageView Node as a mask to represent the Clip. Or you could use one of the geometric shape Nodes such as Rectangle or Circle. Or you could use a Text node to represent the Clip.

          See the class documentation for Node for scene graph structure restrictions on setting the clip. If these restrictions are violated by a change to the clip variable, the change is ignored and the previous value of the clip variable is restored.

          Note that this is a conditional feature. See ConditionalFeature.SHAPE_CLIP for more information.

          There is a known limitation of mixing Clip with a 3D Transform. Clipping is essentially a 2D image operation. The result of a Clip set on a Group node with 3D transformed children will cause its children to be rendered in order without Z-buffering applied between those children.

          Default value:
          null
          See Also:
          getClip(), setClip(Node)
        • cache

          public final BooleanProperty cacheProperty
          A performance hint to the system to indicate that this Node should be cached as a bitmap. Rendering a bitmap representation of a node will be faster than rendering primitives in many cases, especially in the case of primitives with effects applied (such as a blur). However, it also increases memory usage. This hint indicates whether that trade-off (increased memory usage for increased performance) is worthwhile. Also note that on some platforms such as GPU accelerated platforms there is little benefit to caching Nodes as bitmaps when blurs and other effects are used since they are very fast to render on the GPU. The cacheHintProperty() variable provides additional options for enabling more aggressive bitmap caching.

          Caching may be disabled for any node that has a 3D transform on itself, any of its ancestors, or any of its descendants.

          Default value:
          false
          See Also:
          isCache(), setCache(boolean)
        • cacheHint

          public final ObjectProperty<CacheHint> cacheHintProperty
          Additional hint for controlling bitmap caching.

          Under certain circumstances, such as animating nodes that are very expensive to render, it is desirable to be able to perform transformations on the node without having to regenerate the cached bitmap. An option in such cases is to perform the transforms on the cached bitmap itself.

          This technique can provide a dramatic improvement to animation performance, though may also result in a reduction in visual quality. The cacheHint variable provides a hint to the system about how and when that trade-off (visual quality for animation performance) is acceptable.

          It is possible to enable the cacheHint only at times when your node is animating. In this way, expensive nodes can appear on screen with full visual quality, yet still animate smoothly.

          Example:

          
                  expensiveNode.setCache(true);
                  expensiveNode.setCacheHint(CacheHint.QUALITY);
                  ...
                  // Do an animation
                  expensiveNode.setCacheHint(CacheHint.SPEED);
                  new Timeline(
                      new KeyFrame(Duration.seconds(2),
                          new KeyValue(expensiveNode.scaleXProperty(), 2.0),
                          new KeyValue(expensiveNode.scaleYProperty(), 2.0),
                          new KeyValue(expensiveNode.rotateProperty(), 360),
                          new KeyValue(expensiveNode.cacheHintProperty(), CacheHint.QUALITY)
                      )
                  ).play();
               
          Note that cacheHint is only a hint to the system. Depending on the details of the node or the transform, this hint may be ignored.

          If Node.cache is false, cacheHint is ignored. Caching may be disabled for any node that has a 3D transform on itself, any of its ancestors, or any of its descendants.

          Default value:
          CacheHint.DEFAULT
          See Also:
          getCacheHint(), setCacheHint(CacheHint)
        • effect

          public final ObjectProperty<Effect> effectProperty
          Specifies an effect to apply to this Node.

          Note that this is a conditional feature. See ConditionalFeature.EFFECT for more information.

          There is a known limitation of mixing Effect with a 3D Transform. Effect is essentially a 2D image operation. The result of an Effect set on a Group node with 3D transformed children will cause its children to be rendered in order without Z-buffering applied between those children.

          Default value:
          null
          See Also:
          getEffect(), setEffect(Effect)
        • depthTest

          public final ObjectProperty<DepthTest> depthTestProperty
          Indicates whether depth testing is used when rendering this node. If the depthTest flag is DepthTest.DISABLE, then depth testing is disabled for this node. If the depthTest flag is DepthTest.ENABLE, then depth testing is enabled for this node. If the depthTest flag is DepthTest.INHERIT, then depth testing is enabled for this node if it is enabled for the parent node or the parent node is null.

          The depthTest flag is only used when the depthBuffer flag for the Scene is true (meaning that the Scene has an associated depth buffer)

          Depth test comparison is only done among nodes with depthTest enabled. A node with depthTest disabled does not read, test, or write the depth buffer, that is to say its Z value will not be considered for depth testing with other nodes.

          Note that this is a conditional feature. See ConditionalFeature.SCENE3D for more information.

          See the constructor in Scene with depthBuffer as one of its input arguments.

          Default value:
          INHERIT
          See Also:
          getDepthTest(), setDepthTest(DepthTest)
        • disable

          public final BooleanProperty disableProperty
          Defines the individual disabled state of this Node. Setting disable to true will cause this Node and any subnodes to become disabled. This property should be used only to set the disabled state of a Node. For querying the disabled state of a Node, the disabled property should instead be used, since it is possible that a Node was disabled as a result of an ancestor being disabled even if the individual disable state on this Node is false.
          Default value:
          false
          See Also:
          isDisable(), setDisable(boolean)
        • pickOnBounds

          public final BooleanProperty pickOnBoundsProperty
          Defines how the picking computation is done for this node when triggered by a MouseEvent or a contains function call. If pickOnBounds is true, then picking is computed by intersecting with the bounds of this node, else picking is computed by intersecting with the geometric shape of this node.
          Default value:
          false
          See Also:
          isPickOnBounds(), setPickOnBounds(boolean)
        • disabled

          public final ReadOnlyBooleanProperty disabledProperty
          Indicates whether or not this Node is disabled. A Node will become disabled if disable is set to true on either itself or one of its ancestors in the scene graph.

          A disabled Node should render itself differently to indicate its disabled state to the user. Such disabled rendering is dependent on the implementation of the Node. The shape classes contained in javafx.scene.shape do not implement such rendering by default, therefore applications using shapes for handling input must implement appropriate disabled rendering themselves. The user-interface controls defined in javafx.scene.control will implement disabled-sensitive rendering, however.

          A disabled Node does not receive mouse or key events.

          Default value:
          false
          See Also:
          isDisabled(), setDisabled(boolean)
        • onDragDone

          public final ObjectProperty<EventHandler<? super DragEvent>> onDragDoneProperty
          Defines a function to be called when this Node is a drag and drop gesture source after its data has been dropped on a drop target. The transferMode of the event shows what just happened at the drop target. If transferMode has the value MOVE, then the source can clear out its data. Clearing the source's data gives the appropriate appearance to a user that the data has been moved by the drag and drop gesture. A transferMode that has the value NONE indicates that no data was transferred during the drag and drop gesture.
          See Also:
          getOnDragDone(), setOnDragDone(EventHandler)
        • managed

          public final BooleanProperty managedProperty
          Defines whether or not this node's layout will be managed by it's parent. If the node is managed, it's parent will factor the node's geometry into its own preferred size and layoutBounds calculations and will lay it out during the scene's layout pass. If a managed node's layoutBounds changes, it will automatically trigger relayout up the scene-graph to the nearest layout root (which is typically the scene's root node).

          If the node is unmanaged, its parent will ignore the child in both preferred size computations and layout. Changes in layoutBounds will not trigger relayout above it. If an unmanaged node is of type Parent, it will act as a "layout root", meaning that calls to Parent.requestLayout() beneath it will cause only the branch rooted by the node to be relayed out, thereby isolating layout changes to that root and below. It's the application's responsibility to set the size and position of an unmanaged node.

          By default all nodes are managed.

          See Also:
          isManaged(), setManaged(boolean)
        • layoutX

          public final DoubleProperty layoutXProperty
          Defines the x coordinate of the translation that is added to this Node's transform for the purpose of layout. The value should be computed as the offset required to adjust the position of the node from its current layoutBounds minX position (which might not be 0) to the desired location.

          For example, if textnode should be positioned at finalX

               textnode.setLayoutX(finalX - textnode.getLayoutBounds().getMinX());
           

          Failure to subtract layoutBounds minX may result in misplacement of the node. The relocate(x, y) method will automatically do the correct computation and should generally be used over setting layoutX directly.

          The node's final translation will be computed as layoutX + translateX, where layoutX establishes the node's stable position and translateX optionally makes dynamic adjustments to that position.

          If the node is managed and has a Region as its parent, then the layout region will set layoutX according to its own layout policy. If the node is unmanaged or parented by a Group, then the application may set layoutX directly to position it.

          See Also:
          getLayoutX(), setLayoutX(double)
        • layoutY

          public final DoubleProperty layoutYProperty
          Defines the y coordinate of the translation that is added to this Node's transform for the purpose of layout. The value should be computed as the offset required to adjust the position of the node from its current layoutBounds minY position (which might not be 0) to the desired location.

          For example, if textnode should be positioned at finalY

               textnode.setLayoutY(finalY - textnode.getLayoutBounds().getMinY());
           

          Failure to subtract layoutBounds minY may result in misplacement of the node. The relocate(x, y) method will automatically do the correct computation and should generally be used over setting layoutY directly.

          The node's final translation will be computed as layoutY + translateY, where layoutY establishes the node's stable position and translateY optionally makes dynamic adjustments to that position.

          If the node is managed and has a Region as its parent, then the region will set layoutY according to its own layout policy. If the node is unmanaged or parented by a Group, then the application may set layoutY directly to position it.

          See Also:
          getLayoutY(), setLayoutY(double)
        • boundsInParent

          public final ReadOnlyObjectProperty<Bounds> boundsInParentProperty
          The rectangular bounds of this Node which include its transforms. boundsInParent is calculated by taking the local bounds (defined by boundsInLocal) and applying the transform created by setting the following additional variables
          1. transforms ObservableList
          2. scaleX, scaleY
          3. rotate
          4. layoutX, layoutY
          5. translateX, translateY

          The resulting bounds will be conceptually in the coordinate space of the Node's parent, however the node need not have a parent to calculate these bounds.

          Note that this method does not take the node's visibility into account; the computation is based on the geometry of this Node only.

          This property will always have a non-null value.

          Note that boundsInParent is automatically recomputed whenever the geometry of a node changes, or when any of the following the change: transforms ObservableList, translateX, translateY, layoutX, layoutY, scaleX, scaleY, or the rotate variable. For this reason, it is an error to bind any of these values in a node to an expression that depends upon this variable. For example, the x or y variables of a shape, or translateX, translateY should never be bound to boundsInParent for the purpose of positioning the node.

          See Also:
          getBoundsInParent()
        • boundsInLocal

          public final ReadOnlyObjectProperty<Bounds> boundsInLocalProperty
          The rectangular bounds of this Node in the node's untransformed local coordinate space. For nodes that extend Shape, the local bounds will also include space required for a non-zero stroke that may fall outside the shape's geometry that is defined by position and size attributes. The local bounds will also include any clipping set with clip as well as effects set with effect.

          Note that this method does not take the node's visibility into account; the computation is based on the geometry of this Node only.

          This property will always have a non-null value.

          Note that boundsInLocal is automatically recomputed whenever the geometry of a node changes. For this reason, it is an error to bind any of these values in a node to an expression that depends upon this variable. For example, the x or y variables of a shape should never be bound to boundsInLocal for the purpose of positioning the node.

          See Also:
          getBoundsInLocal()
        • layoutBounds

          public final ReadOnlyObjectProperty<Bounds> layoutBoundsProperty
          The rectangular bounds that should be used for layout calculations for this node. layoutBounds may differ from the visual bounds of the node and is computed differently depending on the node type.

          If the node type is resizable (Region, Control, or WebView) then the layoutBounds will always be 0,0 width x height. If the node type is not resizable (Shape, Text, or Group), then the layoutBounds are computed based on the node's geometric properties and does not include the node's clip, effect, or transforms. See individual class documentation for details.

          Note that the layoutX, layoutY, translateX, and translateY variables are not included in the layoutBounds. This is important because layout code must first determine the current size and location of the node (using layoutBounds) and then set layoutX and layoutY to adjust the translation of the node so that it will have the desired layout position.

          Because the computation of layoutBounds is often tied to a node's geometric variables, it is an error to bind any such variables to an expression that depends upon layoutBounds. For example, the x or y variables of a shape should never be bound to layoutBounds for the purpose of positioning the node.

          The layoutBounds will never be null.

          See Also:
          getLayoutBounds()
        • translateX

          public final DoubleProperty translateXProperty
          Defines the x coordinate of the translation that is added to this Node's transform.

          The node's final translation will be computed as layoutX + translateX, where layoutX establishes the node's stable position and translateX optionally makes dynamic adjustments to that position.

          This variable can be used to alter the location of a node without disturbing its layoutBounds, which makes it useful for animating a node's location.

          Default value:
          0
          See Also:
          getTranslateX(), setTranslateX(double)
        • translateY

          public final DoubleProperty translateYProperty
          Defines the y coordinate of the translation that is added to this Node's transform.

          The node's final translation will be computed as layoutY + translateY, where layoutY establishes the node's stable position and translateY optionally makes dynamic adjustments to that position.

          This variable can be used to alter the location of a node without disturbing its layoutBounds, which makes it useful for animating a node's location.

          Default value:
          0
          See Also:
          getTranslateY(), setTranslateY(double)
        • translateZ

          public final DoubleProperty translateZProperty
          Defines the Z coordinate of the translation that is added to the transformed coordinates of this Node. This value will be added to any translation defined by the transforms ObservableList and layoutZ.

          This variable can be used to alter the location of a Node without disturbing its layout bounds, which makes it useful for animating a node's location.

          Note that this is a conditional feature. See ConditionalFeature.SCENE3D for more information.

          Default value:
          0
          See Also:
          getTranslateZ(), setTranslateZ(double)
        • scaleX

          public final DoubleProperty scaleXProperty
          Defines the factor by which coordinates are scaled about the center of the object along the X axis of this Node. This is used to stretch or animate the node either manually or by using an animation.

          This scale factor is not included in layoutBounds by default, which makes it ideal for scaling the entire node after all effects and transforms have been taken into account.

          The pivot point about which the scale occurs is the center of the untransformed layoutBounds.

          Default value:
          1.0
          See Also:
          getScaleX(), setScaleX(double)
        • scaleY

          public final DoubleProperty scaleYProperty
          Defines the factor by which coordinates are scaled about the center of the object along the Y axis of this Node. This is used to stretch or animate the node either manually or by using an animation.

          This scale factor is not included in layoutBounds by default, which makes it ideal for scaling the entire node after all effects and transforms have been taken into account.

          The pivot point about which the scale occurs is the center of the untransformed layoutBounds.

          Default value:
          1.0
          See Also:
          getScaleY(), setScaleY(double)
        • scaleZ

          public final DoubleProperty scaleZProperty
          Defines the factor by which coordinates are scaled about the center of the object along the Z axis of this Node. This is used to stretch or animate the node either manually or by using an animation.

          This scale factor is not included in layoutBounds by default, which makes it ideal for scaling the entire node after all effects and transforms have been taken into account.

          The pivot point about which the scale occurs is the center of the rectangular bounds formed by taking boundsInLocal and applying all the transforms in the transforms ObservableList.

          Note that this is a conditional feature. See ConditionalFeature.SCENE3D for more information.

          Default value:
          1.0
          See Also:
          getScaleZ(), setScaleZ(double)
        • rotate

          public final DoubleProperty rotateProperty
          Defines the angle of rotation about the Node's center, measured in degrees. This is used to rotate the Node.

          This rotation factor is not included in layoutBounds by default, which makes it ideal for rotating the entire node after all effects and transforms have been taken into account.

          The pivot point about which the rotation occurs is the center of the untransformed layoutBounds.

          Note that because the pivot point is computed as the center of this Node's layout bounds, any change to the layout bounds will cause the pivot point to change, which can move the object. For a leaf node, any change to the geometry will cause the layout bounds to change. For a group node, any change to any of its children, including a change in a child's geometry, clip, effect, position, orientation, or scale, will cause the group's layout bounds to change. If this movement of the pivot point is not desired, applications should instead use the Node's transforms ObservableList, and add a Rotate transform, which has a user-specifiable pivot point.

          Default value:
          0.0
          See Also:
          getRotate(), setRotate(double)
        • localToParentTransform

          public final ReadOnlyObjectProperty<Transform> localToParentTransformProperty
          An affine transform that holds the computed local-to-parent transform. This is the concatenation of all transforms in this node, including all of the convenience transforms.
          Since:
          JavaFX 2.2
          See Also:
          getLocalToParentTransform()
        • localToSceneTransform

          public final ReadOnlyObjectProperty<Transform> localToSceneTransformProperty
          An affine transform that holds the computed local-to-scene transform. This is the concatenation of all transforms in this node's parents and in this node, including all of the convenience transforms.

          Note that when you register a listener or a binding to this property, it needs to listen for invalidation on all its parents to the root node. This means that registering a listener on this property on many nodes may negatively affect performance of transformation changes in their common parents.

          Since:
          JavaFX 2.2
          See Also:
          getLocalToSceneTransform()
        • nodeOrientation

          public final ObjectProperty<NodeOrientation> nodeOrientationProperty
          Property holding NodeOrientation.

          Node orientation describes the flow of visual data within a node. In the English speaking world, visual data normally flows from left-to-right. In an Arabic or Hebrew world, visual data flows from right-to-left. This is consistent with the reading order of text in both worlds. The default value is left-to-right.

          Returns:
          NodeOrientation
          Since:
          JavaFX 8.0
        • mouseTransparent

          public final BooleanProperty mouseTransparentProperty
          If true, this node (together with all its children) is completely transparent to mouse events. When choosing target for mouse event, nodes with mouseTransparent set to true and their subtrees won't be taken into account.
          See Also:
          isMouseTransparent(), setMouseTransparent(boolean)
        • hover

          public final ReadOnlyBooleanProperty hoverProperty
          Whether or not this Node is being hovered over. Typically this is due to the mouse being over the node, though it could be due to a pen hovering on a graphics tablet or other form of input.

          Note that current implementation of hover relies on mouse enter and exit events to determine whether this Node is in the hover state; this means that this feature is currently supported only on systems that have a mouse. Future implementations may provide alternative means of supporting hover.

          Default value:
          false
          See Also:
          isHover(), setHover(boolean)
        • pressed

          public final ReadOnlyBooleanProperty pressedProperty
          Whether or not the Node is pressed. Typically this is true when the primary mouse button is down, though subclasses may define other mouse button state or key state to cause the node to be "pressed".
          Default value:
          false
          See Also:
          isPressed(), setPressed(boolean)
        • onInputMethodTextChanged

          public final ObjectProperty<EventHandler<? super InputMethodEvent>> onInputMethodTextChangedProperty
          Defines a function to be called when this Node has input focus and the input method text has changed. If this function is not defined in this Node, then it receives the result string of the input method composition as a series of onKeyTyped function calls.

          When the Node loses the input focus, the JavaFX runtime automatically commits the existing composed text if any.
          See Also:
          getOnInputMethodTextChanged(), setOnInputMethodTextChaTRUCTOR DETAIL ======== -->
          • Constructor Detail

            • Node

              protected Node()
              Creates a new instance of Node.
          • Method Detail

            • getProperties

              public final ObservableMap<Object,Object> getProperties()
              Returns an observable map of properties on this node for use primarily by application developers.
              Returns:
              an observable map of properties on this node for use primarily by application developers
            • hasProperties

              public boolean hasProperties()
              Tests if Node has properties.
              Returns:
              true if node has properties.
            • setUserData

              public void setUserData(Object value)
              Convenience method for setting a single Object property that can be retrieved at a later date. This is functionally equivalent to calling the getProperties().put(Object key, Object value) method. This can later be retrieved by calling getUserData().
              Parameters:
              value - The value to be stored - this can later be retrieved by calling getUserData().
            • getUserData

              public Object getUserData()
              Returns a previously set Object property, or null if no such property has been set using the setUserData(java.lang.Object) method.
              Returns:
              The Object that was previously set, or null if no property has been set or if null was set.
            • getParent

              public final Parent getParent()
              Gets the value of the property parent.
              Poolean)
        • eventDispatcher

          public final ObjectProperty<EventDispatcher> eventDispatcherProperty
          Specifies the event dispatcher for this node. The default event dispatcher sends the received events to the registered event handlers and filters. When replacing the value with a new EventDispatcher, the new dispatcher should forward events to the replaced dispatcher to maintain the node's default event handling behavior.
          See Also:
          getEventDispatcher(), setEventDispatcher(EventDispatcher)
      • Field Detail

        • BASELINE_OFFSET_SAME_AS_HEIGHT

          public static final double BASELINE_OFFSET_SAME_AS_HEIGHT
          This is a special value that might be returned by getBaselineOffset(). This means that the Parent (layout Pane) of this Node should use the height of this Node as a baseline.
          See Also:
          Constant Field Values
      • Constructor Detail

        • Node

          protected Node()
          Creates a new instance of Node.
      • setId

        public final void setId(String value)
        Sets the value of the property id.
        Property description:
        The id of this Node. This simple string identifier is useful for finding a specific Node within the scene graph. While the id of a Node should be unique within the scene graph, this uniqueness is not enforced. This is analogous to the "id" attribute on an HTML element (CSS ID Specification).

        For example, if a Node is given the id of "myId", then the lookup method can be used to find this node as follows: scene.lookup("#myId");.

        Default value:
        null
      • getId

        public final String getId()
        The id of this Node. This simple string identifier is useful for finding a specific Node within the scene graph. While the id of a Node should be unique within the scene graph, this uniqueness is not enforced. This is analogous to the "id" attribute on an HTML element (Object value)
        Convenience method for setting a single Object property that can be retrieved at a later date. This is functionally equivalent to calling the getProperties().put(Object key, Object value) method. This can later be retrieved by calling getUserData().
        Parameters:
        value - The value to be stored - this can later be retrieved by calling getUserData().
      • getUserData

        public Object getUserData()
        Returns a previously set Object property, or null if no such property has been set using the setUserData(java.lang.Object) method.
        Returns:
        The Object that was previously set, or null if no property has been set or if null was set.
      • getScene

        public final Scene getScene()
        Gets the value of the property scene.
        Property description:
        The Scene that this NList">
      • setStyle

        public final void setStyle(String value)
        A string representation of the CSS style associated with this specific Node. This is analogous to the "style" attribute of an HTML element. Note that, like the HTML style attribute, this variable contains style properties and values and not the selector portion of a style rule.
        Default value:
        empty string
        Parameters:
        value - The inline CSS style to use for this Node. null is implicitly converted to an empty String.
        See Also:
        CSS Reference Guide.
      • getStyle

        public final String getStyle()
        A string representation of the CSS style associated with this specific Node. This is analogous to the "style" attribute of an HTML element. Note that, like the HTML style attribute, this variable contains style properties and values and not the selector portion of a style rule.
        Specified by:
        getStyle in interface CSS ID Specification).

        For example, if a Node is given the id of "myId", then the lookup method can be used to find this node as follows: scene.lookup("#myId");.

        Default value:
        null
      • getId

        public final String getId()
        The id of this Node. This simple string identifier is useful for finding a specific Node within the scene graph. While the id of a Node should be unique within the scene graph, this uniqueness is not enforced. This is analogous to the "id" attribute on an HTML element (CSS ID Specification).
        Specified by:
        getId in interface Styleable
        Default value:
        null
        Returns:
        the id assigned to this Node using the setId method or null, if no id has been assigned.
        See Also:
        CSS Reference Guide.
      • idProperty

        public final StringProperty idProperty()
        The id of this Node. This simple string identifier is useful for finding a specific Node within the scene graph. While the id of a Node should be unique within the scene graph, this uniqueness is not enforced. This is analogous to the "id" attribute on an HTML element (CSS ID Specification).

        For example, if a Node is given the id of "myId", then the lookup method can be used to find this node as follows: scene.lookup("#myId");.

        Default value:
        null
        See Also:
        getId(), setId(String)
      • getStyleClass

        public final ObservableList<String> getStyleClass()
        Description copied from interface: Styleable
        A list of String identifiers which can be used to logically group Nodes, specifically for an external style engine. This variable is analogous to the "class" attribute on an HTML element and, as such, each element of the list is a style class to which this Node belongs.
        Specified by:
        getStyleClass in interface Styleable
        See Also:
        CSS3 class selectors
      • setStyle

        public final void setStyle(String value)
        A string representation of the CSS style associated with this specific Node. This is analogous to the "style" attribute of an HTML element. Note that, like the HTML style attribute, this variable contains style properties and values and not the selector portion of a style rule.
        Default value:
        empty string
        Parameters:
        value - The inline CSS style to use for this Node. null is implicitly converted to an empty String.
        See Also:
        CSS Reference Guide.
      • getStyle

        public final String getStyle()
        A string representation of the CSS style associated with this specific Node. This is analogous to the "style" attribute of an HTML element. Note that, like the HTML style attribute, this variable contains style properties and values and not the selector portion of a style rule.
        Specified by:
        getStyle in interface Styleable
        Default value:
        empty string
        Returns:
        The inline CSS style associated with this Node. If this Node does not have an inline style, an empty String is returned.
        See Also:
        CSS Reference Guide.
      • styleProperty

        public final StringProperty styleProperty()
        A string representation of the CSS style associated with this specific Node. This is analogous to the "style" attribute of an HTML element. Note that, like the HTML style attribute, this variable contains style properties and values and not the selector portion of a style rule.
        Default value:
        empty string
        See Also:
        getStyle(), setStyle(String)
      • setVisible

        public final void setVisible(boolean value)
        Sets the value of the property visible.
        Property description:
        Specifies whether this Node and any subnodes should be rendered as part of the scene graph. A node may be visible and yet not be shown in the rendered scene if, for instance, it is off the screen or obscured by another Node. Invisible nodes never receive mouse events or keyboard focus and never maintain keyboard focus when they become invisible.
        Default value:
        true
      • isVisible

        public final boolean isVisible()
        Gets the value of the property visible.
        Property description:
        Specifies whether this Node and any subnodes should be rendered as part of the scene graph. A node may be visible and yet not be shown in the rendered scene if, for instance, it is off the screen or obscured by another Node. Invisible nodes never receive mouse events or keyboard focus and never maintain keyboard focus when they become invisible.
        Default value:
        true
      • visibleProperty

        public final BooleanProperty visibleProperty()
        Specifies whether this Node and any subnodes should be rendered as part of the scene graph. A node may be visible and yet not be shown in the rendered scene if, for instance, it is off the screen or obscured by another Node. Invisible nodes never receive mouse events or keyboard focus and never maintain keyboard focus when they become invisible.
        Default value:
        true
        See Also:
        isVisible(), setVisible(boolean)
      • setCursor

        public final void setCursor(Cursor value)
        Sets the value of the property cursor.
        Property description:
        Defines the mouse cursor for this Node and subnodes. If null, then the cursor of the first parent node with a non-null cursor will be used. If no Node in the scene graph defines a cursor, then the cursor of the Scene will be used.
        Default value:
        null
      • getCursor

        public final Cursor getCursor()
        Gets the value of the property cursor.
        Property description:
        Defines the mouse cursor for this Node and subnodes. If null, then the cursor of the first parent node with a non-null cursor will be used. If no Node in the scene graph defines a cursor, then the cursor of the Scene will be used.
        Default value:
        null
      • cursorProperty

        public final ObjectProperty<Cursor> cursorProperty()
        Defines the mouse cursor for this Node and subnodes. If null, then the cursor of the first parent node with a non-null cursor will be used. If no Node in the scene graph defines a cursor, then the cursor of the Scene will be used.
        Default value:
        null
        See Also:
        getCursor(), setCursor(Cursor)
      • setOpacity

        public final void setOpacity(double value)
        Sets the value of the property opacity.
        Property description:
        Specifies how opaque (that is, solid) the Node appears. A Node with 0% opacity is fully translucent. That is, while it is still visible and rendered, you generally won't be able to see it. The exception to this rule is when the Node is combined with a blending mode and blend effect in which case a translucent Node may still have an impact in rendering. An opacity of 50% will render the node as being 50% transparent.

        A visible node with any opacity setting still receives mouse events and can receive keyboard focus. For example, if you want to have a large invisible rectangle overlay all Nodes in the scene graph in order to intercept mouse events but not be visible to the user, you could create a large Rectangle that had an opacity of 0%.

        Opacity is specified as a value between 0 and 1. Values less than 0 are treated as 0, values greater than 1 are treated as 1.

        On some platforms ImageView might not support opacity variable.

        There is a known limitation of mixing opacity < 1.0 with a 3D Transform. Opacity/Blending is essentially a 2D image operation. The result of an opacity < 1.0 set on a Group node with 3D transformed children will cause its children to be rendered in order without Z-buffering applied between those children.

        Default value:
        1.0
      • getOpacity

        public final double getOpacity()
        Gets the value of the property opacity.
        Property description:
        Specifies how opaque (that is, solid) the Node appears. A Node with 0% opacity is fully translucent. That is, while it is still visible and rendered, you generally won't be able to see it. The exception to this rule is when the Node is combined with a blending mode and blend effect in which case a translucent Node may still have an impact in rendering. An opacity of 50% will render the node as being 50% transparent.

        A visible node with any opacity setting still receives mouse events and can receive keyboard focus. For example, if you want to have a large invisible rectangle overlay all Nodes in the scene graph in order to intercept mouse events but not be visible to the user, you could create a large Rectangle that had an opacity of 0%.

        Opacity is specified as a value between 0 and 1. Values less than 0 are treated as 0, values greater than 1 are treated as 1.

        On some platforms ImageView might not support opacity variable.

        There is a known limitation of mixing opacity < 1.0 with a 3D Transform. Opacity/Blending is essentially a 2D image operation. The result of an opacity < 1.0 set on a Group node with 3D transformed children will cause its children to be rendered in order without Z-buffering applied between those children.

        Default value:
        1.0
      • opacityProperty

        public final DoubleProperty opacityProperty()
        Specifies how opaque (that is, solid) the Node appears. A Node with 0% opacity is fully translucent. That is, while it is still visible and rendered, you generally won't be able to see it. The exception to this rule is when the Node is combined with a blending mode and blend effect in which case a translucent Node may still have an impact in rendering. An opacity of 50% will render the node as being 50% transparent.

        A visible node with any opacity setting still receives mouse events and can receive keyboard focus. For example, if you want to have a large invisible rectangle overlay all Nodes in the scene graph in order to intercept mouse events but not be visible to the user, you could create a large Rectangle that had an opacity of 0%.

        Opacity is specified as a value between 0 and 1. Values less than 0 are treated as 0, values greater than 1 are treated as 1.

        On some platforms ImageView might not support opacity variable.

        There is a known limitation of mixing opacity < 1.0 with a 3D Transform. Opacity/Blending is essentially a 2D image operation. The result of an opacity < 1.0 set on a Group node with 3D transformed children will cause its children to be rendered in order without Z-buffering applied between those children.

        Default value:
        1.0
        See Also:
        getOpacity(), setOpacity(double)
      • setBlendMode

        public final void setBlendMode(BlendMode value)
        Sets the value of the property blendMode.
        Property description:
        The BlendMode used to blend this individual node into the scene behind it. If this node happens to be a Group then all of the children will be composited individually into a temporary buffer using their own blend modes and then that temporary buffer will be composited into the scene using the specified blend mode. A value of null is treated as pass-though this means no effect on a parent such as a Group and the equivalent of SRC_OVER for a single Node.
        Default value:
        null
      • getBlendMode

        public final BlendMode getBlendMode()
        Gets the value of the property blendMode.
        Property description:
        The BlendMode used to blend this individual node into the scene behind it. If this node happens to be a Group then all of the children will be composited individually into a temporary buffer using their own blend modes and then that temporary buffer will be composited into the scene using the specified blend mode. A value of null is treated as pass-though this means no effect on a parent such as a Group and the equivalent of SRC_OVER for a single Node.
        Default value:
        null
      • blendModeProperty

        public final ObjectProperty<BlendMode> blendModeProperty()
        The BlendMode used to blend this individual node into the scene behind it. If this node happens to be a Group then all of the children will be composited individually into a temporary buffer using their own blend modes and then that temporary buffer will be composited into the scene using the specified blend mode. A value of null is treated as pass-though this means no effect on a parent such as a Group and the equivalent of SRC_OVER for a single Node.
        Default value:
        null
        See Also:
        getBlendMode(), setBlendMode(BlendMode)
      • setClip

        public final void setClip(Node value)
        Sets the value of the property clip.
        Property description:
        Specifies a Node to use to define the the clipping shape for this Node. This clipping Node is not a child of this Node in the scene graph sense. Rather, it is used to define the clip for this Node.

        For example, you can use an ImageView Node as a mask to represent the Clip. Or you could use one of the geometric shape Nodes such as Rectangle or Circle. Or you could use a Text node to represent the Clip.

        See the class documentation for Node for scene graph structure restrictions on setting the clip. If these restrictions are violated by a change to the clip variable, the change is ignored and the previous value of the clip variable is restored.

        Note that this is a conditional feature. See ConditionalFeature.SHAPE_CLIP for more information.

        There is a known limitation of mixing Clip with a 3D Transform. Clipping is essentially a 2D image operation. The result of a Clip set on a Group node with 3D transformed children will cause its children to be rendered in order without Z-buffering applied between those children.

        Default value:
        null
      • getClip

        public final Node getClip()
        Gets the value of the property clip.
        Property description:
        Specifies a Node to use to define the the clipping shape for this Node. This clipping Node is not a child of this Node in the scene graph sense. Rather, it is used to define the clip for this Node.

        For example, you can use an ImageView Node as a mask to represent the Clip. Or you could use one of the geometric shape Nodes such as Rectangle or Circle. Or you could use a Text node to represent the Clip.

        See the class documentation for Node for scene graph structure restrictions on setting the clip. If these restrictions are violated by a change to the clip variable, the change is ignored and the previous value of the clip variable is restored.

        Note that this is a conditional feature. See ConditionalFeature.SHAPE_CLIP for more information.

        There is a known limitation of mixing Clip with a 3D Transform. Clipping is essentially a 2D image operation. The result of a Clip set on a Group node with 3D transformed children will cause its children to be rendered in order without Z-buffering applied between those children.

        Default value:
        null
      • clipProperty

        public final ObjectProperty<Node> clipProperty()
        Specifies a Node to use to define the the clipping shape for this Node. This clipping Node is not a child of this Node in the scene graph sense. Rather, it is used to define the clip for this Node.

        For example, you can use an ImageView Node as a mask to represent the Clip. Or you could use one of the geometric shape Nodes such as Rectangle or Circle. Or you could use a Text node to represent the Clip.

        See the class documentation for Node for scene graph structure restrictions on setting the clip. If these restrictions are violated by a change to the clip variable, the change is ignored and the previous value of the clip variable is restored.

        Note that this is a conditional feature. See ConditionalFeature.SHAPE_CLIP for more information.

        There is a known limitation of mixing Clip with a 3D Transform. Clipping is essentially a 2D image operation. The result of a Clip set on a Group node with 3D transformed children will cause its children to be rendered in order without Z-buffering applied between those children.

        Default value:
        null
        See Also:
        getClip(), setClip(Node)
      • setCache

        public final void setCache(boolean value)
        Sets the value of the property cache.
        Property description:
        A performance hint to the system to indicate that this Node should be cached as a bitmap. Rendering a bitmap representation of a node will be faster than rendering primitives in many cases, especially in the case of primitives with effects applied (such as a blur). However, it also increases memory usage. This hint indicates whether that trade-off (increased memory usage for increased performance) is worthwhile. Also note that on some platforms such as GPU accelerated platforms there is little benefit to caching Nodes as bitmaps when blurs and other effects are used since they are very fast to render on the GPU. The cacheHintProperty() variable provides additional options for enabling more aggressive bitmap caching.

        Caching may be disabled for any node that has a 3D transform on itself, any of its ancestors, or any of its descendants.

        Default value:
        false
      • isCache

        public final boolean isCache()
        Gets the value of the property cache.
        Property description:
        A performance hint to the system to indicate that this Node should be cached as a bitmap. Rendering a bitmap representation of a node will be faster than rendering primitives in many cases, especially in the case of primitives with effects applied (such as a blur). However, it also increases memory usage. This hint indicates whether that trade-off (increased memory usage for increased performance) is worthwhile. Also note that on some platforms such as GPU accelerated platforms there is little benefit to caching Nodes as bitmaps when blurs and other effects are used since they are very fast to render on the GPU. The cacheHintProperty() variable provides additional options for enabling more aggressive bitmap caching.

        Caching may be disabled for any node that has a 3D transform on itself, any of its ancestors, or any of its descendants.

        Default value:
        false
      • cacheProperty

        public final BooleanProperty cacheProperty()
        A performance hint to the system to indicate that this Node should be cached as a bitmap. Rendering a bitmap representation of a node will be faster than rendering primitives in many cases, especially in the case of primitives with effects applied (such as a blur). However, it also increases memory usage. This hint indicates whether that trade-off (increased memory usage for increased performance) is worthwhile. Also note that on some platforms such as GPU accelerated platforms there is little benefit to caching Nodes as bitmaps when blurs and other effects are used since they are very fast to render on the GPU. The cacheHintProperty() variable provides additional options for enabling more aggressive bitmap caching.

        Caching may be disabled for any node that has a 3D transform on itself, any of its ancestors, or any of its descendants.

        Default value:
        false
        See Also:
        isCache(), setCache(boolean)
      • setCacheHint

        public final void setCacheHint(CacheHint value)
        Sets the value of the property cacheHint.
        Property description:
        Additional hint for controlling bitmap caching.

        Under certain circumstances, such as animating nodes that are very expensive to render, it is desirable to be able to perform transformations on the node without having to regenerate the cached bitmap. An option in such cases is to perform the transforms on the cached bitmap itself.

        This technique can provide a dramatic improvement to animation performance, though may also result in a reduction in visual quality. The cacheHint variable provides a hint to the system about how and when that trade-off (visual quality for animation performance) is acceptable.

        It is possible to enable the cacheHint only at times when your node is animating. In this way, expensive nodes can appear on screen with full visual quality, yet still animate smoothly.

        Example:

        
                expensiveNode.setCache(true);
                expensiveNode.setCacheHint(CacheHint.QUALITY);
                ...
                // Do an animation
                expensiveNode.setCacheHint(CacheHint.SPEED);
                new Timeline(
                    new KeyFrame(Duration.seconds(2),
                        new KeyValue(expensiveNode.scaleXProperty(), 2.0),
                        new KeyValue(expensiveNode.scaleYProperty(), 2.0),
                        new KeyValue(expensiveNode.rotateProperty(), 360),
                        new KeyValue(expensiveNode.cacheHintProperty(), CacheHint.QUALITY)
                    )
                ).play();
             
        Note that cacheHint is only a hint to the system. Depending on the details of the node or the transform, this hint may be ignored.

        If Node.cache is false, cacheHint is ignored. Caching may be disabled for any node that has a 3D transform on itself, any of its ancestors, or any of its descendants.

        Default value:
        CacheHint.DEFAULT
      • getCacheHint

        public final CacheHint getCacheHint()
        Gets the value of the property cacheHint.
        Property description:
        Additional hint for controlling bitmap caching.

        Under certain circumstances, such as animating nodes that are very expensive to render, it is desirable to be able to perform transformations on the node without having to regenerate the cached bitmap. An option in such cases is to perform the transforms on the cached bitmap itself.

        This technique can provide a dramatic improvement to animation performance, though may also result in a reduction in visual quality. The cacheHint variable provides a hint to the system about how and when that trade-off (visual quality for animation performance) is acceptable.

        It is possible to enable the cacheHint only at times when your node is animating. In this way, expensive nodes can appear on screen with full visual quality, yet still animate smoothly.

        Example:

        
                expensiveNode.setCache(true);
                expensiveNode.setCacheHint(CacheHint.QUALITY);
                ...
                // Do an animation
                expensiveNode.setCacheHint(CacheHint.SPEED);
                new Timeline(
                    new KeyFrame(Duration.seconds(2),
                        new KeyValue(expensiveNode.scaleXProperty(), 2.0),
                        new KeyValue(expensiveNode.scaleYProperty(), 2.0),
                        new KeyValue(expensiveNode.rotateProperty(), 360),
                        new KeyValue(expensiveNode.cacheHintProperty(), CacheHint.QUALITY)
                    )
                ).play();
             
        Note that cacheHint is only a hint to the system. Depending on the details of the node or the transform, this hint may be ignored.

        If Node.cache is false, cacheHint is ignored. Caching may be disabled for any node that has a 3D transform on itself, any of its ancestors, or any of its descendants.

        Default value:
        CacheHint.DEFAULT
      • cacheHintProperty

        public final ObjectProperty<CacheHint> cacheHintProperty()
        Additional hint for controlling bitmap caching.

        Under certain circumstances, such as animating nodes that are very expensive to render, it is desirable to be able to perform transformations on the node without having to regenerate the cached bitmap. An option in such cases is to perform the transforms on the cached bitmap itself.

        This technique can provide a dramatic improvement to animation performance, though may also result in a reduction in visual quality. The cacheHint variable provides a hint to the system about how and when that trade-off (visual quality for animation performance) is acceptable.

        It is possible to enable the cacheHint only at times when your node is animating. In this way, expensive nodes can appear on screen with full visual quality, yet still animate smoothly.

        Example:

        
                expensiveNode.setCache(true);
                expensiveNode.setCacheHint(CacheHint.QUALITY);
                ...
                // Do an animation
                expensiveNode.setCacheHint(CacheHint.SPEED);
                new Timeline(
                    new KeyFrame(Duration.seconds(2),
                        new KeyValue(expensiveNode.scaleXProperty(), 2.0),
                        new KeyValue(expensiveNode.scaleYProperty(), 2.0),
                        new KeyValue(expensiveNode.rotateProperty(), 360),
                        new KeyValue(expensiveNode.cacheHintProperty(), CacheHint.QUALITY)
                    )
                ).play();
             
        Note that cacheHint is only a hint to the system. Depending on the details of the node or the transform, this hint may be ignored.

        If Node.cache is false, cacheHint is ignored. Caching may be disabled for any node that has a 3D transform on itself, any of its ancestors, or any of its descendants.

        Default value:
        CacheHint.DEFAULT
        See Also:
        getCacheHint(), setCacheHint(CacheHint)
      • setEffect

        public final void setEffect(Effect value)
        Sets the value of the property effect.
        Property description:
        Specifies an effect to apply to this Node.

        Note that this is a conditional feature. See ConditionalFeature.EFFECT for more information.

        There is a known limitation of mixing Effect with a 3D Transform. Effect is essentially a 2D image operation. The result of an Effect set on a Group node with 3D transformed children will cause its children to be rendered in order without Z-buffering applied between those children.

        Default value:
        null
      • getEffect

        public final Effect getEffect()
        Gets the value of the property effect.
        Property description:
        Specifies an effect to apply to this Node.

        Note that this is a conditional feature. See ConditionalFeature.EFFECT for more information.

        There is a known limitation of mixing Effect with a 3D Transform. Effect is essentially a 2D image operation. The result of an Effect set on a Group node with 3D transformed children will cause its children to be rendered in order without Z-buffering applied between those children.

        Default value:
        null
      • effectProperty

        public final ObjectProperty<Effect> effectProperty()
        Specifies an effect to apply to this Node.

        Note that this is a conditional feature. See ConditionalFeature.EFFECT for more information.

        There is a known limitation of mixing Effect with a 3D Transform. Effect is essentially a 2D image operation. The result of an Effect set on a Group node with 3D transformed children will cause its children to be rendered in order without Z-buffering applied between those children.

        Default value:
        null
        See Also:
        getEffect(), setEffect(Effect)
      • setDepthTest

        public final void setDepthTest(DepthTest value)
        Sets the value of the property depthTest.
        Property description:
        Indicates whether depth testing is used when rendering this node. If the depthTest flag is DepthTest.DISABLE, then depth testing is disabled for this node. If the depthTest flag is DepthTest.ENABLE, then depth testing is enabled for this node. If the depthTest flag is DepthTest.INHERIT, then depth testing is enabled for this node if it is enabled for the parent node or the parent node is null.

        The depthTest flag is only used when the depthBuffer flag for the Scene is true (meaning that the Scene has an associated depth buffer)

        Depth test comparison is only done among nodes with depthTest enabled. A node with depthTest disabled does not read, test, or write the depth buffer, that is to say its Z value will not be considered for depth testing with other nodes.

        Note that this is a conditional feature. See ConditionalFeature.SCENE3D for more information.

        See the constructor in Scene with depthBuffer as one of its input arguments.

        Default value:
        INHERIT
      • getDepthTest

        public final DepthTest getDepthTest()
        Gets the value of the property depthTest.
        Property description:
        Indicates whether depth testing is used when rendering this node. If the depthTest flag is DepthTest.DISABLE, then depth testing is disabled for this node. If the depthTest flag is DepthTest.ENABLE, then depth testing is enabled for this node. If the depthTest flag is DepthTest.INHERIT, then depth testing is enabled for this node if it is enabled for the parent node or the parent node is null.

        The depthTest flag is only used when the depthBuffer flag for the Scene is true (meaning that the Scene has an associated depth buffer)

        Depth test comparison is only done among nodes with depthTest enabled. A node with depthTest disabled does not read, test, or write the depth buffer, that is to say its Z value will not be considered for depth testing with other nodes.

        Note that this is a conditional feature. See ConditionalFeature.SCENE3D for more information.

        See the constructor in Scene with depthBuffer as one of its input arguments.

        Default value:
        INHERIT
      • depthTestProperty

        public final ObjectProperty<DepthTest> depthTestProperty()
        Indicates whether depth testing is used when rendering this node. If the depthTest flag is DepthTest.DISABLE, then depth testing is disabled for this node. If the depthTest flag is DepthTest.ENABLE, then depth testing is enabled for this node. If the depthTest flag is DepthTest.INHERIT, then depth testing is enabled for this node if it is enabled for the parent node or the parent node is null.

        The depthTest flag is only used when the depthBuffer flag for the Scene is true (meaning that the Scene has an associated depth buffer)

        Depth test comparison is only done among nodes with depthTest enabled. A node with depthTest disabled does not read, test, or write the depth buffer, that is to say its Z value will not be considered for depth testing with other nodes.

        Note that this is a conditional feature. See ConditionalFeature.SCENE3D for more information.

        See the constructor in Scene with depthBuffer as one of its input arguments.

        Default value:
        INHERIT
        See Also:
        getDepthTest(), setDepthTest(DepthTest)
      • setDisable

        public final void setDisable(boolean value)
        Sets the value of the property disable.
        Property description:
        Defines the individual disabled state of this Node. Setting disable to true will cause this Node and any subnodes to become disabled. This property should be used only to set the disabled state of a Node. For querying the disabled state of a Node, the disabled property should instead be used, since it is possible that a Node was disabled as a result of an ancestor being disabled even if the individual disable state on this Node is false.
        Default value:
        false
      • isDisable

        public final boolean isDisable()
        Gets the value of the property disable.
        Property description:
        Defines the individual disabled state of this Node. Setting disable to true will cause this Node and any subnodes to become disabled. This property should be used only to set the disabled state of a Node. For querying the disabled state of a Node, the disabled property should instead be used, since it is possible that a Node was disabled as a result of an ancestor being disabled even if the individual disable state on this Node is false.
        Default value:
        false
      • disableProperty

        public final BooleanProperty disableProperty()
        Defines the individual disabled state of this Node. Setting disable to true will cause this Node and any subnodes to become disabled. This property should be used only to set the disabled state of a Node. For querying the disabled state of a Node, the disabled property should instead be used, since it is possible that a Node was disabled as a result of an ancestor being disabled even if the individual disable state on this Node is false.
        Default value:
        false
        See Also:
        isDisable(), setDisable(boolean)
      • setPickOnBounds

        public final void setPickOnBounds(boolean value)
        Sets the value of the property pickOnBounds.
        Property description:
        Defines how the picking computation is done for this node when triggered by a a name="lookup-java.lang.String-">
        • lookup

          public Node lookup(String selector)
          Finds this Node, or the first sub-node, based on the given CSS selector. If this node is a Parent, then this function will traverse down into the branch until it finds a match. If more than one sub-node matches the specified selector, this function returns the first of them.

          For example, if a Node is given the id of "myId", then the lookup method can be used to find this node as follows: scene.lookup("#myId");.

          Parameters:
          selector - The css selector of the node to find
          Returns:
          The first node, starting from this Node, which matches the CSS selector, null if none is found.
        • lookupAll

          public Set<Node> lookupAll(String selector)
          Finds all Nodes, including this one and any children, which match the given CSS selector. If no matches are found, an empty unmodifiable set is returned. The set is explicitly unordered.
          is true, then picking is computed by intersecting with the bounds of this node, else picking is computed by intersecting with the geometric shape of this node.
    Default value:
    false
    See Also:
    isPickOnBounds(), setPickOnBounds(boolean)
    • setDisabled

      protected final void setDisabled(boolean value)
      Sets the value of the property disabled.
      Property description:
      Indicates whether or not this Node is disabled. A Node will become disabled if disable is set to true on either itself or one of its ancestors in the scene graph.

      A disabled Node should render itself differently to indicate its disabled state to the user. Such disabled rendering is dependent on the implementation of the Node. The shape classes contained in javafx.scene.shape do not implement such rendering by default, therefore applications using shapes for handling input must implement appropriate disabled rendering themselves. The user-interface controls defined in javafx.scene.control will implement disabled-sensitive rendering, however.

      A disabled Node does not receive mouse or key events.

      Default value:
      false
    • isDisabled

      public final boolean isDisabled()
      Gets the value of the property disabled.
      Property description:
      Indicates whether or not this Node is disabled. A Node will become disabled if disable is set to true on either itself or one of its ancestors in the scene graph.

      A disabled Node should render itself differently to indicate its disabled state to the user. Such disabled rendering is dependent on the implementation of the Node. The shape classes contained in javafx.scene.shape do not implement such rendering by default, therefore applications using shapes for handling input must implement appropriate disabled rendering themselves. The user-interface controls defined in javafx.scene.control will implement disabled-sensitive rendering, however.

      A disabled Node does not receive mouse or key events.

      Default value:
      false
    • disabledProperty

      public final ReadOnlyBooleanProperty disabledProperty()
      Indicates whether or not this Node is disabled. A Node will become disabled if disable is set to true on either itself or one of its ancestors in the scene graph.

      A disabled Node should render itself differently to indicate its disabled state to the user. Such disabled rendering is dependent on the implementation of the Node. The shape classes contained in javafx.scene.shape do no the SnapShotParameters. These integer values are chosen such that the image will wholly contain the bounds of this Node or the specified viewport. If the image is non-null, the node will be rendered into the existing image. In this case, the width and height of the image determine the area that is rendered instead of the width and height of the bounds or viewport.

      Returns:
      the rendered image
      Throws:
      IllegalStateException - if this method is called on a thread other than the JavaFX Application Thread.
      Since:
      JavaFX 2.2
    • snapshot

      public void snapshot(Callback<SnapshotResult,Void> callback,
                           SnapshotParameters params,
                           WritableImage image)
      Takes a snapshot of this node at the next frame and calls the specified callback method when the image is ready. CSS and layouel">Parameters:
      selector - The css selector of the node to find
      Returns:
      The first node, starting from this Node, which matches the CSS selector, null if none is found.
    • lookupAll

      public Set<Node> lookupAll(String selector)
      Finds all Nodes, including this one and any children, which match the given CSS selector. If no matches are found, an empty unmodifiable set is returned. The set is explicitly unordered.
      Parameters:
      selector - The css selector of the nodes to find
      Returns:
      All nodes, starting from and including this Node, which match the CSS selector. The returned set is always unordered and unmodifiable, and never null.
    • toBack

      public void toBack()
      Moves this Node to the back of its sibling nodes in terms of z-order. This is accomplished by moving this Node to the first position in its parent's content ObservableList. This function has no effect if this Node is not part of a group.
    • toFront

      public void toFront()
      Moves this Node to the front of its sibling nodes in terms of z-order. This is accomplished by moving this Node to the last position in its parent's content ObservableList. This function has no effect if this Node is not part of a group.
    Throws:
    IllegalStateException - if this method is called on a thread other than the JavaFX Application Thread.
    NullPointerException - if the callback parameter is null.
    Since:
    JavaFX 2.2
    • setOnDragEntered

      public final void setOnDragEntered(EventHandler<? super DragEvent> value)
      Sets the value of the property onDragEntered.
      Property description:
      Defines a function to be call(such as chart animation), the snapshot will be rendered based on the state of the scene graph at the moment the snapshot is taken and will not reflect any subsequent animation changes.

      NOTE: In order for CSS and layout to function correctly, the node must be part of a Scene (the Scene may be attached to a Stage, but need not be).

    Parameters:
    params - the snapshot parameters containing attributes that will control the rendering. If the SnapshotParameters object is null, then the Scene's attributes will be used if this node is part of a scene, or default attributes will be used if this node is not part of a scene.
    image - the writable image that will be used to hold the rendered node. It may be null in which case a new WritableImage will be constructed. The new image is constructed using integer width and height values that are derived either from the transformed bounds of this Node or from the size of the viewport as specified in the SnapShotParameters. These integer values are chosen such that the image will wholly contain the bounds of this Node or the specified viewport. If the image is non-null, the node will be rendered into the existing image. In this case, the width and height of the image determine the area that is rendered instead of the width and height of the bounds or viewport.
    Returns:
    the rendered image
    Throws:
    IllegalStateException - if this method is called on a thread other than the JavaFX Application Thread.
    Since:
    JavaFX 2.2
    • setOnDragDone

      public final void setOnDragDone(EventHandler<? super DragEvent> value)
      Sets the value of the property onDragDone.
      Property description:
      Defines a function to be called when this Node is a drag and drop gesture source after its data has been dropped on a drop target. The transferMode of the event shows what just happened at the drop target. If transferMode has the value MOVE, then the source can clear out its data. Clearing the source's data gives the appropriate appearance to a user that the data has been moved by the drag and drop gesture. A transferMode that has the value NONE indicates that no data was transferred during the drag and drop gesture.
    • getOnDragDone

      public final EventHandler<? super DragEvent> getOnDragDone()
      Gets the value of the property onDragDone.
      Property description:
      Defines a function to be called when this Node is a drag and drop gesture source after its data has been dropped on a drop target. The transferMode of the event shows what just happened at the drop target. If transferMode has the value MOVE, then the source can clear out its data. Clearing the source's data gives the appropriate appearance to a user that the data has been moved by the drag and drop gesture. A transferMode that has the value NONE indicates that no data was transferred during the drag and drop gesture.
    • onDragDoneProperty

      public final ObjectProperty<EventHandler<? super DragEvent>> onDragDoneProperty()
      Defines a function to be called when this Node is a drag and drop gesture source after its data has been dropped on a drop target. The transferMode of the event shows what just happened at the drop target. If transferMode has the value MOVE, then the source can clear out its data. Clearing the source's data gives the appropriate appearance to a user that the data has been moved by the drag and drop gesture. A transferMode that has the value NONE indicates that no data was transferred during the drag and drop gesture.
      See Also:
      getOnDragDone(), setOnDragDone(EventHandler)
    • startDragAndDrop

      public Dragboard startDragAndDrop(TransferMode... transferModes)
      Confirms a potential drag and drop gesture that is recognized over this Node. Can be called only from a DRAG_DETECTED event handler. The returned Dragboard is used to transfer data during the drag and drop gesture. Placing this Node's data on the Dragboard also identifies this Node as the source of the drag and drop gesture. More detail about drag and drop gestures is described in the overivew of DragEvent.
      Parameters:
      transferModes - The supported TransferMode(s) of this Node
      Returns:
      A Dragboard to place this Node's data on
      Throws:
      IllegalStateException - if drag and drop cannot be started at this moment (it's called outside of DRAG_DETECTED event handling or this node is not in scene).
      See Also:
      DragEvent
    • startFullDrag

      public void startFullDrag()
      Starts a full press-drag-release gesture with this node as gesture source. This method can be called only from a DRAG_DETECTED mouse event handler. More detail about dragging gestures can be found in the overview of MouseEvent and MouseDragEvent.
      Throws:
      IllegalStateException - if the full press-drag-release gesture cannot be started at this moment (it's called outside of DRAG_DETECTED event handling or this node is not in scene).
      Since:
      JavaFX 2.1
      See Also:
      MouseEvent, MouseDragEvent
    • setManaged

      public final void setManaged(boolean value)
      Sets the value of the property managed.
      Property description:
      Defines whether or not this node's layout will be managed by it's parent. If the node is managed, it's parent will factor the node's geometry into its own preferred size and layoutBounds calculations and will lay it out during the scene's layout pass. If a managed node's layoutBounds changes, it will automatically trigger relayout up the scene-graph to the nearest layout root (which is typically the scene's root node).

      If the node is unmanaged, its parent will ignore the child in both preferred size computations and layout. Changes in layoutBounds will not trigger relayout above it. If an unmanaged node is of type Parent, it will act as a "layout root", meaning that calls to Parent.requestLayout() beneath it will cause only the branch rooted by the node to be relayed out, thereby isolating layout changes to that root and below. It's the application's responsibility to set the size and position of an unmanaged node.

      By default all nodes are managed.

    • isManaged

      public final boolean isManaged()
      Gets the value of the property managed.
      Property description:
      Defines whether or not this node's layout will be managed by it's parent. If the node is managed, it's parent will factor the node's geometry into its own preferred size and layoutBounds calculations and will lay it out during the scene's layout pass. If a managed node's layoutBounds changes, it will automatically trigger relayout up the scene-graph to the nearest layout root (which is typically the scene's root node).

      If the node is unmanaged, its parent will ignore the child in both preferred size computations and layout. Changes in layoutBounds will not trigger relayout above it. If an unmanaged node is of type Parent, it will act as a "layout root", meaning that calls to Parent.requestLayout() beneath it will cause only the branch rooted by the node to be relayed out, thereby isolating layout changes to that root and below. It's the application's responsibility to set the size and position of an unmanaged node.

      By default all nodes are managed.

    • managedProperty

      public final BooleanProperty managedProperty()
      Defines whether or not this node's layout will be managed by it's parent. If the node is managed, it's parent will factor the node's geometry into its own preferred size and layoutBounds calculations and will lay it out during the scene's layout pass. If a managed node's layoutBounds changes, it will automatically trigger relayout up the scene-graph to the nearest layout root (which is typically the scene's root node).

      If the node is unmanaged, its parent will ignore the child in both preferred size computations and layout. Changes in layoutBounds will not trigger relayout above it. If an unmanaged node is of type Parent, it will act as a "layout root", meaning that calls to Parent.requestLayout() beneath it will cause only the branch rooted by the node to be relayed out, thereby isolating layout changes to that root and below. It's the application's responsibility to set the size and position of an unmanaged node.

      By default all nodes are managed.

      See Also:
      isManaged(), setManaged(boolean)
    • setLayoutX

      public final void setLayoutX(double value)
      Sets the value of the property layoutX.
      Property description:
      Defines the x coordinate of the translation that is added to this Node's transform for the purpose of layout. The value should be computed as the offset required to adjust the position of the node from its current layoutBounds minX position (which might not be 0) to the desired location.

      For example, if textnode should be positioned at finalX

           textnode.setLayoutX(finalX - textnode.getLayoutBounds().getMinX());
       

      Failure to subtract layoutBounds minX may result in misplacement of the node. The relocate(x, y) method will automatically do the correct computation and should generally be used over setting layoutX directly.

      The node's final translation will be computed as layoutX + translateX, where layoutX establishes the node's stable position and translateX optionally makes dynamic adjustments to that position.

      If the node is managed and has a Region as its parent, then the layout region will set layoutX according to its own layout policy. If the node is unmanaged or parented by a Group, then the application may set layoutX directly to position it.

    • getLayoutX

      public final double getLayoutX()
      Gets the value of the property layoutX.
      Property description:
      Defines the x coordinate of the translation that is added to this Node's transform for the purpose of layout. The value should be computed as the offset required to adjust the position of the node from its current layoutBounds minX position (which might not be 0) to the desired location.

      For example, if textnode should be positioned at finalX

           textnode.setLayoutX(finalX - textnode.getLayoutBounds().getMinX());
       

      Failure to subtract layoutBounds minX may result in misplacement of the node. The relocate(x, y) method will automatically do the correct computation and should generally be used over setting layoutX directly.

      The node's final translation will be computed as layoutX + translateX, where layoutX establishes the node's stable position and translateX optionally makes dynamic adjustments to that position.

      If the node is managed and has a Region as its parent, then the layout region will set layoutX according to its own layout policy. If the node is unmanaged or parented by a Group, then the application may set layoutX directly to position it.

    • layoutXProperty

      public final DoubleProperty layoutXProperty()
      Defines the x coordinate of the translation that is added to this Node's transform for the purpose of layout. The value should be computed as the offset required to adjust the position of the node from its current layoutBounds minX position (which might not be 0) to the desired location.

      For example, if textnode should be positioned at finalX

           textnode.setLayoutX(finalX - textnode.getLayoutBounds().getMinX());
       

      Failure to subtract layoutBounds minX may result in misplacement of the node. The relocate(x, y) method will automatically do the correct computation and should generally be used over setting layoutX directly.

      The node's final translation will be computed as layoutX + translateX, where layoutX establishes the node's stable position and translateX optionally makes dynamic adjustments to that position.

      If the node is managed and has a Region as its parent, then the layout region will set layoutX according to its own layout policy. If the node is unmanaged or parented by a Group, then the application may set layoutX directly to position it.

      See Also:
      getLayoutX(), setLayoutX(double)
    • setLayoutY

      public final void setLayoutY(double value)
      Sets the value of the property layoutY.
      Property description:
      Defines the y coordinate of the translation that is added to this Node's transform for the purpose of layout. The value should be computed as the offset required to adjust the position of the node from its current layoutBounds minY position (which might not be 0) to the desired location.

      For example, if textnode should be positioned at finalY

           textnode.setLayoutY(finalY - textnode.getLayoutBounds().getMinY());
       

      Failure to subtract layoutBounds minY may result in misplacement of the node. The relocate(x, y) method will automatically do the correct computation and should generally be used over setting layoutY directly.

      The node's final translation will be computed as layoutY + translateY, where layoutY establishes the node's stable position and translateY optionally makes dynamic adjustments to that position.

      If the node is managed and has a Region as its parent, then the region will set layoutY according to its own layout policy. If the node is unmanaged or parented by a Group, then the application may set layoutY directly to position it.

    • getLayoutY

      public final double getLayoutY()
      Gets the value of the property layoutY.
      Property description:
      Defines the y coordinate of the translation that is added to this Node's transform for the purpose of layout. The value should be computed as the offset required to adjust the position of the node from its current layoutBounds minY position (which might not be 0) to the desired location.

      For example, if textnode should be positioned at finalY

           textnode.setLayoutY(finalY - textnode.getLayoutBounds().getMinY());
       

      Failure to subtract layoutBounds minY may result in misplacement of the node. The relocate(x, y) method will automatically do the correct computation and should generally be used over setting layoutY directly.

      The node's final translation will be computed as layoutY + translateY, where layoutY establishes the node's stable position and translateY optionally makes dynamic adjustments to that position.

      If the node is managed and has a Region as its parent, then the region will set layoutY according to its own layout policy. If the node is unmanaged or parented by a Group, then the application may set layoutY directly to position it.

    • layoutYProperty

      public final DoubleProperty layoutYProperty()
      Defines the y coordinate of the translation that is added to this Node's transform for the purpose of layout. The value should be computed as the offset required to adjust the position of the node from its current layoutBounds minY position (which might not be 0) to the desired location.

      For example, if textnode should be positioned at finalY

           textnode.setLayoutY(finalY - textnode.getLayoutBounds().getMinY());
       

      Failure to subtract layoutBounds minY may result in misplacement of the node. The relocate(x, y) method will automatically do the correct computation and should generally be used over setting layoutY directly.

      The node's final translation will be computed as layoutY + translateY, where layoutY establishes the node's stable position and translateY optionally makes dynamic adjustments to that position.

      If the node is managed and has a Region as its parent, then the region will set layoutY according to its own layout policy. If the node is unmanaged or parented by a Group, then the application may set layoutY directly to position it.

      See Also:
      getLayoutY(), setLayoutY(double)
    • relocate

      public void relocate(double x,
                           double y)
      Sets the node's layoutX and layoutY translation properties in order to relocate this node to the x,y location in the parent.

      This method does not alter translateX or translateY, which if also set will be added to layoutX and layoutY, adjusting the final location by corresponding amounts.

      Parameters:
      x - the target x coordinate location
      y - the target y coordinate location
    • isResizable

      public boolean isResizable()
      Indicates whether this node is a type which can be resized by its parent. If this method returns true, then the parent will resize the node (ideally within its size range) by calling node.resize(width,height) during the layout pass. All Regions, Controls, and WebView are resizable classes which depend on their parents resizing them during layout once all sizing and CSS styling information has been applied.

      If this method returns false, then the parent cannot resize it during layout (resize() is a no-op) and it should return its layoutBounds for minimum, preferred, and maximum sizes. Group, Text, and all Shapes are not resizable and hence depend on the application to establish their sizing by setting appropriate properties (e.g. width/height for Rectangle, text on Text, and so on). Non-resizable nodes may still be relocated during layout.

      Returns:
      whether or not this node type can be resized by its parent during layout
      See Also:
      getContentBias(), minWidth(double), minHeight(double), prefWidth(double), prefHeight(double), maxWidth(double), maxHeight(double), resize(double, double), getLayoutBounds()
    • minWidth

      public double minWidth(double height)
      Returns the node's minimum width for use in layout calculations. If the node is resizable, its parent should not resize its width any smaller than this value. If the node is not resizable, returns its layoutBounds width.

      Layout code which calls this method should first check the content-bias of the node. If the node has a vertical content-bias, then callers should pass in a height value that the minimum width should be based on. If the node has either a horizontal or null content-bias, then the caller should pass in -1.

      Node subclasses with a vertical content-bias should honor the height parameter whether -1 or a positive value. All other subclasses may ignore the height parameter (which will likely be -1).

      If Node's maxWidth(double) is lower than this number, minWidth takes precedence. This means the Node should never be resized below minWidth.

      Parameters:
      height - the height that should be used if minimum width depends on it
      Returns:
      the minimum width that the node should be resized to during layout. The result will never be NaN, nor will it ever be negative.
      See Also:
      isResizable(), getContentBias()
    • minHeight

      public double minHeight(double width)
      Returns the node's minimum height for use in layout calculations. If the node is resizable, its parent should not resize its height any smaller than this value. If the node is not resizable, returns its layoutBounds height.

      Layout code which calls this method should first check the content-bias of the node. If the node has a horizontal content-bias, then callers should pass in a width value that the minimum height should be based on. If the node has either a vertical or null content-bias, then the caller should pass in -1.

      Node subclasses with a horizontal content-bias should honor the width parameter whether -1 or a positive value. All other subclasses may ignore the width parameter (which will likely be -1).

      If Node's maxHeight(double) is lower than this number, minHeight takes precedence. This means the Node should never be resized below minHeight.

      Parameters:
      width - the width that should be used if minimum height depends on it
      Returns:
      the minimum height that the node should be resized to during layout The result will never be NaN, nor will it ever be negative.
      See Also:
      isResizable(), getContentBias()
    • prefWidth

      public double prefWidth(double height)
      Returns the node's preferred width for use in layout calculations. If the node is resizable, its parent should treat this value as the node's ideal width within its range. If the node is not resizable, just returns its layoutBounds width, which should be treated as the rigid width of the node.

      Layout code which calls this method should first check the content-bias of the node. If the node has a vertical content-bias, then callers should pass in a height value that the preferred width should be based on. If the node has either a horizontal or null content-bias, then the caller should pass in -1.

      Node subclasses with a vertical content-bias should honor the height parameter whether -1 or a positive value. All other subclasses may ignore the height parameter (which will likely be -1).

      Parameters:
      height - the height that should be used if preferred width depends on it
      Returns:
      the preferred width that the node should be resized to during layout The result will never be NaN, nor will it ever be negative.
      See Also:
      isResizable(), getContentBias(), autosize()
    • prefHeight

      public double prefHeight(double width)
      Returns the node's preferred height for use in layout calculations. If the node is resizable, its parent should treat this value as the node's ideal height within its range. If the node is not resizable, just returns its layoutBounds height, which should be treated as the rigid height of the node.

      Layout code which calls this method should first check the content-bias of the node. If the node has a horizontal content-bias, then callers should pass in a width value that the preferred height should be based on. If the node has either a vertical or null content-bias, then the caller should pass in -1.

      Node subclasses with a horizontal content-bias should honor the height parameter whether -1 or a positive value. All other subclasses may ignore the height parameter (which will likely be -1).

      Parameters:
      width - the width that should be used if preferred height depends on it
      Returns:
      the preferred height that the node should be resized to during layout The result will never be NaN, nor will it ever be negative.
      See Also:
      getContentBias(), autosize()
    • maxWidth

      public double maxWidth(double height)
      Returns the node's maximum width for use in layout calculations. If the node is resizable, its parent should not resize its width any larger than this value. A value of Double.MAX_VALUE indicates the parent may expand the node's width beyond its preferred without limits.

      If the node is not resizable, returns its layoutBounds width.

      Layout code which calls this method should first check the content-bias of the node. If the node has a vertical content-bias, then callers should pass in a height value that the maximum width should be based on. If the node has either a horizontal or null content-bias, then the caller should pass in -1.

      Node subclasses with a vertical content-bias should honor the height parameter whether -1 or a positive value. All other subclasses may ignore the height parameter (which will likely be -1).

      If Node's minWidth(double) is greater, it should take precedence over the maxWidth. This means the Node should never be resized below minWidth.

      Parameters:
      height - the height that should be used if maximum width depends on it
      Returns:
      the maximum width that the node should be resized to during layout The result will never be NaN, nor will it ever be negative.
      See Also:
      isResizable(), getContentBias()
    • maxHeight

      public double maxHeight(double width)
      Returns the node's maximum height for use in layout calculations. If the node is resizable, its parent should not resize its height any larger than this value. A value of Double.MAX_VALUE indicates the parent may expand the node's height beyond its preferred without limits.

      If the node is not resizable, returns its layoutBounds height.

      Layout code which calls this method should first check the content-bias of the node. If the node has a horizontal content-bias, then callers should pass in a width value that the maximum height should be based on. If the node has either a vertical or null content-bias, then the caller should pass in -1.

      Node subclasses with a horizontal content-bias should honor the width parameter whether -1 or a positive value. All other subclasses may ignore the width parameter (which will likely be -1).

      If Node's minHeight(double) is greater, it should take precedence over the maxHeight. This means the Node should never be resized below minHeight.

      Parameters:
      width - the width that should be used if maximum height depends on it
      Returns:
      the maximum height that the node should be resized to during layout The result will never be NaN, nor will it ever be negative.
      See Also:
      isResizable(), getContentBias()
    • resize

      public void resize(double width,
                         double height)
      If the node is resizable, will set its layout bounds to the specified width and height. If the node is not resizable, this method is a no-op.

      This method should generally only be called by parent nodes from their layoutChildren() methods. All Parent classes will automatically resize resizable children, so resizing done directly by the application will be overridden by the node's parent, unless the child is unmanaged.

      Parents are responsible for ensuring the width and height values fall within the resizable node's preferred range. The autosize() method may be used if the parent just needs to resize the node to its preferred size.

      Parameters:
      width - the target layout bounds width
      height - the target layout bounds height
      See Also:
      isResizable(), getContentBias(), autosize(), minWidth(double), minHeight(double), prefWidth(double), prefHeight(double), maxWidth(double), maxHeight(double), getLayoutBounds()
    • autosize

      public final void autosize()
      If the node is resizable, will set its layout bounds to its current preferred width and height. If the node is not resizable, this method is a no-op.

      This method automatically queries the node's content-bias and if it's horizontal, will pass in the node's preferred width to get the preferred height; if vertical, will pass in the node's preferred height to get the width, and if null, will compute the preferred width/height independently.

      See Also:
      isResizable(), getContentBias()
    • resizeRelocate

      public void resizeRelocate(double x,
                                 double y,
                                 double width,
                                 double height)
      If the node is resizable, will set its layout bounds to the specified width and height. If the node is not resizable, the resize step is skipped.

      Once the node has been resized (if resizable) then sets the node's layoutX and layoutY translation properties in order to relocate it to x,y in the parent's coordinate space.

      This method should generally only be called by parent nodes from their layoutChildren() methods. All Parent classes will automatically resize resizable children, so resizing done directly by the application will be overridden by the node's parent, unless the child is unmanaged.

      Parents are responsible for ensuring the width and height values fall within the resizable node's preferred range. The autosize() and relocate() methods may be used if the parent just needs to resize the node to its preferred size and reposition it.

      Parameters:
      x - the target x coordinate location
      y - the target y coordinate location
      width - the target layout bounds width
      height - the target layout bounds height
      See Also:
      isResizable(), getContentBias(), autosize(), minWidth(double), minHeight(double), prefWidth(double), prefHeight(double), maxWidth(double), maxHeight(double)
    • getBaselineOffset

      public double getBaselineOffset()
      The 'alphabetic' (or 'roman') baseline offset from the node's layoutBounds.minY location that should be used when this node is being vertically aligned by baseline with other nodes. By default this returns BASELINE_OFFSET_SAME_AS_HEIGHT for resizable Nodes and layoutBounds height for non-resizable. Subclasses which contain text should override this method to return their actual text baseline offset.
      Returns:
      offset of text baseline from layoutBounds.minY for non-resizable Nodes or BASELINE_OFFSET_SAME_AS_HEIGHT otherwise
    • computeAreaInScreen

      public double computeAreaInScreen()
      Returns the area of this Node projected onto the physical screen in pixel units.
      Since:
      JavaFX 8.0
    • getBoundsInParent

      public final Bounds getBoundsInParent()
      Gets the value of the property boundsInParent.
      Property description:
      The rectangular bounds of this Node which include its transforms. boundsInParent is calculated by taking the local bounds (defined by boundsInLocal) and applying the transform created by setting the following additional variables
      1. transforms ObservableList
      2. scaleX, scaleY
      3. rotate
      4. layoutX, layoutY
      5. translateX, translateY

      The resulting bounds will be conceptually in the coordinate space of the Node's parent, however the node need not have a parent to calculate these bounds.

      Note that this method does not take the node's visibility into account; the computation is based on the geometry of this Node only.

      This property will always have a non-null value.

      Note that boundsInParent is automatically recomputed whenever the geometry of a node changes, or when any of the following the change: transforms ObservableList, translateX, translateY, layoutX, layoutY, scaleX, scaleY, or the rotate variable. For this reason, it is an error to bind any of these values in a node to an expression that depends upon this variable. For example, the x or y variables of a shape, or translateX, translateY should never be bound to boundsInParent for the purpose of positioning the node.

    • boundsInParentProperty

      public final ReadOnlyObjectProperty<Bounds> boundsInParentProperty()
      The rectangular bounds of this Node which include its transforms. boundsInParent is calculated by taking the local bounds (defined by boundsInLocal) and applying the transform created by setting the following additional variables
      1. transforms ObservableList
      2. scaleX, scaleY
      3. rotate
      4. layoutX, layoutY
      5. translateX, translateY

      The resulting bounds will be conceptually in the coordinate space of the Node's parent, however the node need not have a parent to calculate these bounds.

      Note that this method does not take the node's visibility into account; the computation is based on the geometry of this Node only.

      This property will always have a non-null value.

      Note that boundsInParent is automatically recomputed whenever the geometry of a node changes, or when any of the following the change: transforms ObservableList, translateX, translateY, layoutX, layoutY, scaleX, scaleY, or the rotate variable. For this reason, it is an error to bind any of these values in a node to an expression that depends upon this variable. For example, the x or y variables of a shape, or translateX, translateY should never be bound to boundsInParent for the purpose of positioning the node.

      See Also:
      getBoundsInParent()
    • getBoundsInLocal

      public final Bounds getBoundsInLocal()
      Gets the value of the property boundsInLocal.
      Property description:
      The rectangular bounds of this Node in the node's untransformed local coordinate space. For nodes that extend Shape, the local bounds will also include space required for a non-zero stroke that may fall outside the shape's geometry that is defined by position and size attributes. The local bounds will also include any clipping set with clip as well as effects set with effect.

      Note that this method does not take the node's visibility into account; the computation is based on the geometry of this Node only.

      This property will always have a non-null value.

      Note that boundsInLocal is automatically recomputed whenever the geometry of a node changes. For this reason, it is an error to bind any of these values in a node to an expression that depends upon this variable. For example, the x or y variables of a shape should never be bound to boundsInLocal for the purpose of positioning the node.

    • boundsInLocalProperty

      public final ReadOnlyObjectProperty<Bounds> boundsInLocalProperty()
      The rectangular bounds of this Node in the node's untransformed local coordinate space. For nodes that extend Shape, the local bounds will also include space required for a non-zero stroke that may fall outside the shape's geometry that is defined by position and size attributes. The local bounds will also include any clipping set with clip as well as effects set with effect.

      Note that this method does not take the node's visibility into account; the computation is based on the geometry of this Node only.

      This property will always have a non-null value.

      Note that boundsInLocal is automatically recomputed whenever the geometry of a node changes. For this reason, it is an error to bind any of these values in a node to an expression that depends upon this variable. For example, the x or y variables of a shape should never be bound to boundsInLocal for the purpose of positioning the node.

      See Also:
      getBoundsInLocal()
    • getLayoutBounds

      public final Bounds getLayoutBounds()
      Gets the value of the property layoutBounds.
      Property description:
      The rectangular bounds that should be used for layout calculations for this node. layoutBounds may differ from the visual bounds of the node and is computed differently depending on the node type.

      If the node type is resizable (Region, Control, or WebView) then the layoutBounds will always be 0,0 width x height. If the node type is not resizable (Shape, Text, or Group), then the layoutBounds are computed based on the node's geometric properties and does not include the node's clip, effect, or transforms. See individual class documentation for details.

      Note that the layoutX, layoutY, translateX, and translateY variables are not included in the layoutBounds. This is important because layout code must first determine the current size and location of the node (using layoutBounds) and then set layoutX and layoutY to adjust the translation of the node so that it will have the desired layout position.

      Because the computation of layoutBounds is often tied to a node's geometric variables, it is an error to bind any such variables to an expression that depends upon layoutBounds. For example, the x or y variables of a shape should never be bound to layoutBounds for the purpose of positioning the node.

      The layoutBounds will never be null.

    • layoutBoundsProperty

      public final ReadOnlyObjectProperty<Bounds> layoutBoundsProperty()
      The rectangular bounds that should be used for layout calculations for this node. layoutBounds may differ from the visual bounds of the node and is computed differently depending on the node type.

      If the node type is resizable (Region, Control, or WebView) then the layoutBounds will always be 0,0 width x height. If the node type is not resizable (Shape, Text, or Group), then the layoutBounds are computed based on the node's geometric properties and does not include the node's clip, effect, or transforms. See individual class documentation for details.

      Note that the layoutX, layoutY, translateX, and translateY variables are not included in the layoutBounds. This is important because layout code must first determine the current size and location of the node (using layoutBounds) and then set layoutX and layoutY to adjust the translation of the node so that it will have the desired layout position.

      Because the computation of layoutBounds is often tied to a node's geometric variables, it is an error to bind any such variables to an expression that depends upon layoutBounds. For example, the x or y variables of a shape should never be bound to layoutBounds for the purpose of positioning the node.

      The layoutBounds will never be null.

      See Also:
      getLayoutBounds()
    • contains

      public boolean contains(double localX,
                              double localY)
      Returns true if the given point (specified in the local coordinate space of this Node) is contained within the shape of this Node. Note that this method does not take visibility into account; the test is based on the geometry of this Node only.
    • contains

      public boolean contains(Point2D localPoint)
      Returns true if the given point (specified in the local coordinate space of this Node) is contained within the shape of this Node. Note that this method does not take visibility into account; the test is based on the geometry of this Node only.
    • intersects

      public boolean intersects(double localX,
                                double localY,
                                double localWidth,
                                double localHeight)
      Returns true if the given rectangle (specified in the local coordinate space of this Node) intersects the shape of this Node. Note that this method does not take visibility into account; the test is based on the geometry of this Node only. The default behavior of this function is simply to check if the given coordinates intersect with the local bounds.
    • intersects

      public boolean intersects(Bounds localBounds)
      Returns true if the given bounds (specified in the local coordinate space of this Node) intersects the shape of this Node. Note that this method does not take visibility into account; the test is based on the geometry of this Node only. The default behavior of this function is simply to check if the given coordinates intersect with the local bounds.
    • screenToLocal

      public Point2D screenToLocal(double screenX,
                                   double screenY)
      Transforms a point from the coordinate space of the Screen into the local coordinate space of this Node.
      Parameters:
      screenX - x coordinate of a point on a Screen
      screenY - y coordinate of a point on a Screen
      Returns:
      local Node's coordinates of the point or null if Node is not in a Window. Null is also returned if the transformation from local to Scene is not invertible.
      Since:
      JavaFX 8.0
    • screenToLocal

      public Point2D screenToLocal(Point2D screenPoint)
      Transforms a point from the coordinate space of the Screen into the local coordinate space of this Node.
      Parameters:
      screenPoint - a point on a Screen
      Returns:
      local Node's coordinates of the point or null if Node is not in a Window. Null is also returned if the transformation from local to Scene is not invertible.
      Since:
      JavaFX 8.0
    • screenToLocal

      public Bounds screenToLocal(Bounds screenBounds)
      Transforms a rectangle from the coordinate space of the Screen into the local coordinate space of this Node. Returns reasonable result only in 2D space.
      Parameters:
      screenBounds - bounds on a Screen
      Returns:
      bounds in the local Node'space or null if Node is not in a Window. Null is also returned if the transformation from local to Scene is not invertible.
      Since:
      JavaFX 8.0
    • sceneToLocal

      public Point2D sceneToLocal(double sceneX,
                                  double sceneY)
      Transforms a point from the coordinate space of the Scene into the local coordinate space of this Node.
      Parameters:
      sceneX - x coordinate of a point on a Scene
      sceneY - y coordinate of a point on a Scene
      Returns:
      local Node's coordinates of the point or null if Node is not in a Window. Null is also returned if the transformation from local to Scene is not invertible.
    • sceneToLocal

      public Point2D sceneToLocal(Point2D scenePoint)
      Transforms a point from the coordinate space of the Scene into the local coordinate space of this Node.
      Parameters:
      scenePoint - a point on a Scene
      Returns:
      local Node's coordinates of the point or null if Node is not in a Window. Null is also returned if the transformation from local to Scene is not invertible.
    • sceneToLocal

      public Point3D sceneToLocal(Point3D scenePoint)
      Transforms a point from the coordinate space of the Scene into the local coordinate space of this Node.
      Parameters:
      scenePoint - a point on a Scene
      Returns:
      local Node's coordinates of the point or null if Node is not in a Window. Null is also returned if the transformation from local to Scene is not invertible.
      Since:
      JavaFX 8.0
    • sceneToLocal

      public Point3D sceneToLocal(double sceneX,
                                  double sceneY,
                                  double sceneZ)
      Transforms a point from the coordinate space of the Scene into the local coordinate space of this Node.
      Parameters:
      sceneX - x coordinate of a point on a Scene
      sceneY - y coordinate of a point on a Scene
      sceneZ - z coordinate of a point on a Scene
      Returns:
      local Node's coordinates of the point or null if Node is not in a Window. Null is also returned if the transformation from local to Scene is not invertible.
      Since:
      JavaFX 8.0
    • sceneToLocal

      public Bounds sceneToLocal(Bounds sceneBounds)
      Transforms a rectangle from the coordinate space of the Scene into the local coordinate space of this Node.
      Parameters:
      sceneBounds - bounds on a Scene
      Returns:
      bounds in the local Node'space or null if Node is not in a Window. Null is also returned if the transformation from local to Scene is not invertible.
    • localToScreen

      public Point2D localToScreen(double localX,
                                   double localY)
      Transforms a point from the local coordinate space of this Node into the coordinate space of its Screen.
      Parameters:
      localX - x coordinate of a point in Node's space
      localY - y coordinate of a point in Node's space
      Returns:
      screen coordinates of the point or null if Node is not in a Window
      Since:
      JavaFX 8.0
    • localToScreen

      public Point2D localToScreen(Point2D localPoint)
      Transforms a point from the local coordinate space of this Node into the coordinate space of its Screen.
      Parameters:
      localPoint - a point in Node's space
      Returns:
      screen coordinates of the point or null if Node is not in a Window
      Since:
      JavaFX 8.0
    • localToScreen

      public Point2D localToScreen(double localX,
                                   double localY,
                                   double localZ)
      Transforms a point from the local coordinate space of this Node into the coordinate space of its Screen.
      Parameters:
      localX - x coordinate of a point in Node's space
      localY - y coordinate of a point in Node's space
      localZ - z coordinate of a point in Node's space
      Returns:
      screen coordinates of the point or null if Node is not in a Window
      Since:
      JavaFX 8.0
    • localToScreen

      public Point2D localToScreen(Point3D localPoint)
      Transforms a point from the local coordinate space of this Node into the coordinate space of its Screen.
      Parameters:
      localPoint - a point in Node's space
      Returns:
      screen coordinates of the point or null if Node is not in a Window
      Since:
      JavaFX 8.0
    • localToScreen

      public Bounds localToScreen(Bounds localBounds)
      Transforms a bounds from the local coordinate space of this Node into the coordinate space of its Screen.
      Parameters:
      localBounds - bounds in Node's space
      Returns:
      the bounds in screen coordinates or null if Node is not in a Window
      Since:
      JavaFX 8.0
    • localToScene

      public Point2D localToScene(double localX,
                                  double localY)
      Transforms a point from the local coordinate space of this Node into the coordinate space of its Scene.
      Parameters:
      localX - x coordinate of a point in Node's space
      localY - y coordinate of a point in Node's space
      Returns:
      scene coordinates of the point or null if Node is not in a Window
    • localToScene

      public Point2D localToScene(Point2D localPoint)
      Transforms a point from the local coordinate space of this Node into the coordinate space of its Scene.
      Parameters:
      localPoint - a point in Node's space
      Returns:
      scene coordinates of the point or null if Node is not in a Window
    • localToScene

      public Point3D localToScene(Point3D localPoint)
      Transforms a point from the local coordinate space of this Node into the coordinate space of its Scene.
      Since:
      JavaFX 8.0
    • localToScene

      public Point3D localToScene(double x,
                                  double y,
                                  double z)
      Transforms a point from the local coordinate space of this Node into the coordinate space of its Scene.
      Since:
      JavaFX 8.0
    • localToScene

      public Bounds localToScene(Bounds localBounds)
      Transforms a bounds from the local coordinate space of this Node into the coordinate space of its Scene.
      Parameters:
      localBounds - bounds in Node's space
      Returns:
      the bounds in the scene coordinates or null if Node is not in a Window
    • parentToLocal

      public Point2D parentToLocal(double parentX,
                                   double parentY)
      Transforms a point from the coordinate space of the parent into the local coordinate space of this Node.
    • parentToLocal

      public Point2D parentToLocal(Point2D parentPoint)
      Transforms a point from the coordinate space of the parent into the local coordinate space of this Node.
    • parentToLocal

      public Point3D parentToLocal(Point3D parentPoint)
      Transforms a point from the coordinate space of the parent into the local coordinate space of this Node.
      Since:
      JavaFX 8.0
    • parentToLocal

      public Point3D parentToLocal(double parentX,
                                   double parentY,
                                   double parentZ)
      Transforms a point from the coordinate space of the parent into the local coordinate space of this Node.
      Since:
      JavaFX 8.0
    • parentToLocal

      public Bounds parentToLocal(Bounds parentBounds)
      Transforms a rectangle from the coordinate space of the parent into the local coordinate space of this Node.
    • localToParent

      public Point2D localToParent(double localX,
                                   double localY)
      Transforms a point from the local coordinate space of this Node into the coordinate space of its parent.
    • localToParent

      public Point2D localToParent(Point2D localPoint)
      Transforms a point from the local coordinate space of this Node into the coordinate space of its parent.
    • localToParent

      public Point3D localToParent(Point3D localPoint)
      Transforms a point from the local coordinate space of this Node into the coordinate space of its parent.
      Since:
      JavaFX 8.0
    • localToParent

      public Point3D localToParent(double x,
                                   double y,
                                   double z)
      Transforms a point from the local coordinate space of this Node into the coordinate space of its parent.
      Since:
      JavaFX 8.0
    • localToParent

      public Bounds localToParent(Bounds localBounds)
      Transforms a bounds from the local coordinate space of this Node into the coordinate space of its parent.
    • setTranslateX

      public final void setTranslateX(double value)
      Sets the value of the property translateX.
      Property description:
      Defines the x coordinate of the translation that is added to this Node's transform.

      The node's final translation will be computed as layoutX + translateX, where layoutX establishes the node's stable position and translateX optionally makes dynamic adjustments to that position.

      This variable can be used to alter the location of a node without disturbing its layoutBounds, which makes it useful for animating a node's location.

      Default value:
      0
    • getTranslateX

      public final double getTranslateX()
      Gets the value of the property translateX.
      Property description:
      Defines the x coordinate of the translation that is added to this Node's transform.

      The node's final translation will be computed as layoutX + translateX, where layoutX establishes the node's stable position and translateX optionally makes dynamic adjustments to that position.

      This variable can be used to alter the location of a node without disturbing its layoutBounds, which makes it useful for animating a node's location.

      Default value:
      0
    • translateXProperty

      public final DoubleProperty translateXProperty()
      Defines the x coordinate of the translation that is added to this Node's transform.

      The node's final translation will be computed as layoutX + translateX, where layoutX establishes the node's stable position and translateX optionally makes dynamic adjustments to that position.

      This variable can be used to alter the location of a node without disturbing its layoutBounds, which makes it useful for animating a node's location.

      Default value:
      0
      See Also:
      getTranslateX(), setTranslateX(double)
    • setTranslateY

      public final void setTranslateY(double value)
      Sets the value of the property translateY.
      Property description:
      Defines the y coordinate of the translation that is added to this Node's transform.

      The node's final translation will be computed as layoutY + translateY, where layoutY establishes the node's stable position and translateY optionally makes dynamic adjustments to that position.

      This variable can be used to alter the location of a node without disturbing its layoutBounds, which makes it useful for animating a node's location.

      Default value:
      0
    • getTranslateY

      public final double getTranslateY()
      Gets the value of the property translateY.
      Property description:
      Defines the y coordinate of the translation that is added to this Node's transform.

      The node's final translation will be computed as layoutY + translateY, where layoutY establishes the node's stable position and translateY optionally makes dynamic adjustments to that position.

      This variable can be used to alter the location of a node without disturbing its layoutBounds, which makes it useful for animating a node's location.

      Default value:
      0
    • translateYProperty

      public final DoubleProperty translateYProperty()
      Defines the y coordinate of the translation that is added to this Node's transform.

      The node's final translation will be computed as layoutY + translateY, where layoutY establishes the node's stable position and translateY optionally makes dynamic adjustments to that position.

      This variable can be used to alter the location of a node without disturbing its layoutBounds, which makes it useful for animating a node's location.

      Default value:
      0
      See Also:
      getTranslateY(), setTranslateY(double)
    • setTranslateZ

      public final void setTranslateZ(double value)
      Sets the value of the property translateZ.
      Property description:
      Defines the Z coordinate of the translation that is added to the transformed coordinates of this Node. This value will be added to any translation defined by the transforms ObservableList and layoutZ.

      This variable can be used to alter the location of a Node without disturbing its layout bounds, which makes it useful for animating a node's location.

      Note that this is a conditional feature. See ConditionalFeature.SCENE3D for more information.

      Default value:
      0
    • getTranslateZ

      public final double getTranslateZ()
      Gets the value of the property translateZ.
      Property description:
      Defines the Z coordinate of the translation that is added to the transformed coordinates of this Node. This value will be added to any translation defined by the transforms ObservableList and layoutZ.

      This variable can be used to alter the location of a Node without disturbing its layout bounds, which makes it useful for animating a node's location.

      Note that this is a conditional feature. See ConditionalFeature.SCENE3D for more information.

      Default value:
      0
    • translateZProperty

      public final DoubleProperty translateZProperty()
      Defines the Z coordinate of the translation that is added to the transformed coordinates of this Node. This value will be added to any translation defined by the transforms ObservableList and layoutZ.

      This variable can be used to alter the location of a Node without disturbing its layout bounds, which makes it useful for animating a node's location.

      Note that this is a conditional feature. See ConditionalFeature.SCENE3D for more information.

      Default value:
      0
      See Also:
      getTranslateZ(), setTranslateZ(double)
    • setScaleX

      public final void setScaleX(double value)
      Sets the value of the property scaleX.
      Property description:
      Defines the factor by which coordinates are scaled about the center of the object along the X axis of this Node. This is used to stretch or animate the node either manually or by using an animation.

      This scale factor is not included in layoutBounds by default, which makes it ideal for scaling the entire node after all effects and transforms have been taken into account.

      The pivot point about which the scale occurs is the center of the untransformed layoutBounds.

      Default value:
      1.0
    • getScaleX

      public final double getScaleX()
      Gets the value of the property scaleX.
      Property description:
      Defines the factor by which coordinates are scaled about the center of the object along the X axis of this Node. This is used to stretch or animate the node either manually or by using an animation.

      This scale factor is not included in layoutBounds by default, which makes it ideal for scaling the entire node after all effects and transforms have been taken into account.

      The pivot point about which the scale occurs is the center of the untransformed layoutBounds.

      Default value:
      1.0
    • scaleXProperty

      public final DoubleProperty scaleXProperty()
      Defines the factor by which coordinates are scaled about the center of the object along the X axis of this Node. This is used to stretch or animate the node either manually or by using an animation.

      This scale factor is not included in layoutBounds by default, which makes it ideal for scaling the entire node after all effects and transforms have been taken into account.

      The pivot point about which the scale occurs is the center of the untransformed layoutBounds.

      Default value:
      1.0
      See Also:
      getScaleX(), setScaleX(double)
    • setScaleY

      public final void setScaleY(double value)
      Sets the value of the property scaleY.
      Property description:
      Defines the factor by which coordinates are scaled about the center of the object along the Y axis of this Node. This is used to stretch or animate the node either manually or by using an animation.

      This scale factor is not included in layoutBounds by default, which makes it ideal for scaling the entire node after all effects and transforms have been taken into account.

      The pivot point about which the scale occurs is the center of the untransformed layoutBounds.

      Default value:
      1.0
    • getScaleY

      public final double getScaleY()
      Gets the value of the property scaleY.
      Property description:
      Defines the factor by which coordinates are scaled about the center of the object along the Y axis of this Node. This is used to stretch or animate the node either manually or by using an animation.

      This scale factor is not included in layoutBounds by default, which makes it ideal for scaling the entire node after all effects and transforms have been taken into account.

      The pivot point about which the scale occurs is the center of the untransformed layoutBounds.

      Default value:
      1.0
    • scaleYProperty

      public final DoubleProperty scaleYProperty()
      Defines the factor by which coordinates are scaled about the center of the object along the Y axis of this Node. This is used to stretch or animate the node either manually or by using an animation.

      This scale factor is not included in layoutBounds by default, which makes it ideal for scaling the entire node after all effects and transforms have been taken into account.

      The pivot point about which the scale occurs is the center of the untransformed layoutBounds.

      Default value:
      1.0
      See Also:
      getScaleY(), setScaleY(double)
    • setScaleZ

      public final void setScaleZ(double value)
      Sets the value of the property scaleZ.
      Property description:
      Defines the factor by which coordinates are scaled about the center of the object along the Z axis of this Node. This is used to stretch or animate the node either manually or by using an animation.

      This scale factor is not included in layoutBounds by default, which makes it ideal for scaling the entire node after all effects and transforms have been taken into account.

      The pivot point about which the scale occurs is the center of the rectangular bounds formed by taking boundsInLocal and applying all the transforms in the transforms ObservableList.

      Note that this is a conditional feature. See ConditionalFeature.SCENE3D for more information.

      Default value:
      1.0
    • getScaleZ

      public final double getScaleZ()
      Gets the value of the property scaleZ.
      Property description:
      Defines the factor by which coordinates are scaled about the center of the object along the Z axis of this Node. This is used to stretch or animate the node either manually or by using an animation.

      This scale factor is not included in layoutBounds by default, which makes it ideal for scaling the entire node after all effects and transforms have been taken into account.

      The pivot point about which the scale occurs is the center of the rectangular bounds formed by taking boundsInLocal and applying all the transforms in the transforms ObservableList.

      Note that this is a conditional feature. See ConditionalFeature.SCENE3D for more information.

      Default value:
      1.0
    • scaleZProperty

      public final DoubleProperty scaleZProperty()
      Defines the factor by which coordinates are scaled about the center of the object along the Z axis of this Node. This is used to stretch or animate the node either manually or by using an animation.

      This scale factor is not included in layoutBounds by default, which makes it ideal for scaling the entire node after all effects and transforms have been taken into account.

      The pivot point about which the scale occurs is the center of the rectangular bounds formed by taking boundsInLocal and applying all the transforms in the transforms ObservableList.

      Note that this is a conditional feature. See ConditionalFeature.SCENE3D for more information.

      Default value:
      1.0
      See Also:
      getScaleZ(), setScaleZ(double)
    • setRotate

      public final void setRotate(double value)
      Sets the value of the property rotate.
      Property description:
      Defines the angle of rotation about the Node's center, measured in degrees. This is used to rotate the Node.

      This rotation factor is not included in layoutBounds by default, which makes it ideal for rotating the entire node after all effects and transforms have been taken into account.

      The pivot point about which the rotation occurs is the center of the untransformed layoutBounds.

      Note that because the pivot point is computed as the center of this Node's layout bounds, any change to the layout bounds will cause the pivot point to change, which can move the object. For a leaf node, any change to the geometry will cause the layout bounds to change. For a group node, any change to any of its children, including a change in a child's geometry, clip, effect, position, orientation, or scale, will cause the group's layout bounds to change. If this movement of the pivot point is not desired, applications should instead use the Node's transforms ObservableList, and add a Rotate transform, which has a user-specifiable pivot point.

      Default value:
      0.0
    • getRotate

      public final double getRotate()
      Gets the value of the property rotate.
      Property description:
      Defines the angle of rotation about the Node's center, measured in degrees. This is used to rotate the Node.

      This rotation factor is not included in layoutBounds by default, which makes it ideal for rotating the entire node after all effects and transforms have been taken into account.

      The pivot point about which the rotation occurs is the center of the untransformed layoutBounds.

      Note that because the pivot point is computed as the center of this Node's layout bounds, any change to the layout bounds will cause the pivot point to change, which can move the object. For a leaf node, any change to the geometry will cause the layout bounds to change. For a group node, any change to any of its children, including a change in a child's geometry, clip, effect, position, orientation, or scale, will cause the group's layout bounds to change. If this movement of the pivot point is not desired, applications should instead use the Node's transforms ObservableList, and add a Rotate transform, which has a user-specifiable pivot point.

      Default value:
      0.0
    • rotateProperty

      public final DoubleProperty rotateProperty()
      Defines the angle of rotation about the Node's center, measured in degrees. This is used to rotate the Node.

      This rotation factor is not included in layoutBounds by default, which makes it ideal for rotating the entire node after all effects and transforms have been taken into account.

      The pivot point about which the rotation occurs is the center of the untransformed layoutBounds.

      Note that because the pivot point is computed as the center of this Node's layout bounds, any change to the layout bounds will cause the pivot point to change, which can move the object. For a leaf node, any change to the geometry will cause the layout bounds to change. For a group node, any change to any of its children, including a change in a child's geometry, clip, effect, position, orientation, or scale, will cause the group's layout bounds to change. If this movement of the pivot point is not desired, applications should instead use the Node's transforms ObservableList, and add a Rotate transform, which has a user-specifiable pivot point.

      Default value:
      0.0
      See Also:
      getRotate(), setRotate(double)
    • setRotationAxis

      public final void setRotationAxis(Point3D value)
      Sets the value of the property rotationAxis.
      Property description:
      Defines the axis of rotation of this Node.

      Note that this is a conditional feature. See ConditionalFeature.SCENE3D for more information.

      Default value:
      Rotate.Z_AXIS
    • getRotationAxis

      public final Point3D getRotationAxis()
      Gets the value of the property rotationAxis.
      Property description:
      Defines the axis of rotation of this Node.

      Note that this is a conditional feature. See ConditionalFeature.SCENE3D for more information.

      Default value:
      Rotate.Z_AXIS
    • localToParentTransformProperty

      public final ReadOnlyObjectProperty<Transform> localToParentTransformProperty()
      An affine transform that holds the computed local-to-parent transform. This is the concatenation of all transforms in this node, including all of the convenience transforms.
      Since:
      JavaFX 2.2
      See Also:
      getLocalToParentTransform()
    • getLocalToParentTransform

      public final Transform getLocalToParentTransform()
      Gets the value of the property localToParentTransform.
      Property description:
      An affine transform that holds the computed local-to-parent transform. This is the concatenation of all transforms in this node, including all of the convenience transforms.
      Since:
      JavaFX 2.2
    • localToSceneTransformProperty

      public final ReadOnlyObjectProperty<Transform> localToSceneTransformProperty()
      An affine transform that holds the computed local-to-scene transform. This is the concatenation of all transforms in this node's parents and in this node, including all of the convenience transforms.

      Note that when you register a listener or a binding to this property, it needs to listen for invalidation on all its parents to the root node. This means that registering a listener on this property on many nodes may negatively affect performance of transformation changes in their common parents.

      Since:
      JavaFX 2.2
      See Also:
      getLocalToSceneTransform()
    • getLocalToSceneTransform

      public final Transform getLocalToSceneTransform()
      Gets the value of the property localToSceneTransform.
      Property description:
      An affine transform that holds the computed local-to-scene transform. This is the concatenation of all transforms in this node's parents and in this node, including all of the convenience transforms.

      Note that when you register a listener or a binding to this property, it needs to listen for invalidation on all its parents to the root node. This means that registering a listener on this property on many nodes may negatively affect performance of transformation changes in their common parents.

      Since:
      JavaFX 2.2
    • setNodeOrientation

      public final void setNodeOrientation(NodeOrientation orientation)
      Sets the value of the property nodeOrientation.
      Property description:
      * Component Orientation Properties * *
    • getNodeOrientation

      public final NodeOrientation getNodeOrientation()
      Gets the value of the property nodeOrientation.
      Property description:
      * Component Orientation Properties * *
    • nodeOrientationProperty

      public final ObjectProperty<NodeOrientation> nodeOrientationProperty()
      Property holding NodeOrientation.

      Node orientation describes the flow of visual data within a node. In the English speaking world, visual data normally flows from left-to-right. In an Arabic or Hebrew world, visual data flows from right-to-left. This is consistent with the reading order of text in both worlds. The default value is left-to-right.

      Returns:
      NodeOrientation
      Since:
      JavaFX 8.0
    • getEffectiveNodeOrientation

      public final NodeOrientation getEffectiveNodeOrientation()
      Gets the value of the property effectiveNodeOrientation.
      Property description:
      The effective orientation of a node resolves the inheritance of node orientation, returning either left-to-right or right-to-left.
      Since:
      JavaFX 8.0
    • usesMirroring

      public boolean usesMirroring()
      Determines whether a node should be mirrored when node orientation is right-to-left.

      When a node is mirrored, the origin is automatically moved to the top right corner causing the node to layout children and draw from right to left using a mirroring transformation. Some nodes may wish to draw from right to left without using a transformation. These nodes will will answer false and implement right-to-left orientation without using the automatic transformation.

      Since:
      JavaFX 8.0
    • setMouseTransparent

      public final void setMouseTransparent(boolean value)
      Sets the value of the property mouseTransparent.
      Property description:
      If true, this node (together with all its children) is completely transparent to mouse events. When choosing target for mouse event, nodes with mouseTransparent set to true and their subtrees won't be taken into account.
    • isMouseTransparent

      public final boolean isMouseTransparent()
      Gets the value of the property mouseTransparent.
      Property description:
      If true, this node (together with all its children) is completely transparent to mouse events. When choosing target for mouse event, nodes with mouseTransparent set to true and their subtrees won't be taken into account.
    • mouseTransparentProperty

      public final BooleanProperty mouseTransparentProperty()
      If true, this node (together with all its children) is completely transparent to mouse events. When choosing target for mouse event, nodes with mouseTransparent set to true and their subtrees won't be taken into account.
      See Also:
      isMouseTransparent(), setMouseTransparent(boolean)
    • setHover

      protected final void setHover(boolean value)
      Sets the value of the property hover.
      Property description:
      Whether or not this Node is being hovered over. Typically this is due to the mouse being over the node, though it could be due to a pen hovering on a graphics tablet or other form of input.

      Note that current implementation of hover relies on mouse enter and exit events to determine whether this Node is in the hover state; this means that this feature is currently supported only on systems that have a mouse. Future implementations may provide alternative means of supporting hover.

      Default value:
      false
    • isHover

      public final boolean isHover()
      Gets the value of the property hover.
      Property description:
      Whether or not this Node is being hovered over. Typically this is due to the mouse being over the node, though it could be due to a pen hovering on a graphics tablet or other form of input.

      Note that current implementation of hover relies on mouse enter and exit events to determine whether this Node is in the hover state; this means that this feature is currently supported only on systems that have a mouse. Future implementations may provide alternative means of supporting hover.

      Default value:
      false
    • hoverProperty

      public final ReadOnlyBooleanProperty hoverProperty()
      Whether or not this Node is being hovered over. Typically this is due to the mouse being over the node, though it could be due to a pen hovering on a graphics tablet or other form of input.

      Note that current implementation of hover relies on mouse enter and exit events to determine whether this Node is in the hover state; this means that this feature is currently supported only on systems that have a mouse. Future implementations may provide alternative means of supporting hover.

      Default value:
      false
      See Also:
      isHover(), setHover(boolean)
    • setPressed

      protected final void setPressed(boolean value)
      Sets the value of the property pressed.
      Property description:
      Whether or not the Node is pressed. Typically this is true when the primary mouse button is down, though subclasses may define other mouse button state or key state to cause the node to be "pressed".
      Default value:
      false
    • isPressed

      public final boolean isPressed()
      Gets the value of the property pressed.
      Property description:
      Whether or not the Node is pressed. Typically this is true when the primary mouse button is down, though subclasses may define other mouse button state or key state to cause the node to be "pressed".
      Default value:
      false
    • pressedProperty

      public final ReadOnlyBooleanProperty pressedProperty()
      Whether or not the Node is pressed. Typically this is true when the primary mouse button is down, though subclasses may define other mouse button state or key state to cause the node to be "pressed".
      Default value:
      false
      See Also:
      isPressed(), setPressed(boolean)
    • setOnContextMenuRequested

      public final void setOnContextMenuRequested(EventHandler<? super ContextMenuEvent> value)
      Sets the value of the property onContextMenuRequested.
      Property description:
      Defines a function to be called when a context menu has been requested on this Node.
      Since:
      JavaFX 2.1
    • getOnContextMenuRequested

      public final EventHandler<? super ContextMenuEvent> getOnContextMenuRequested()
      Gets the value of the property onContextMenuRequested.
      Property description:
      Defines a function to be called when a context menu has been requested on this Node.
      Since:
      JavaFX 2.1
    • setOnMouseClicked

      public final void setOnMouseClicked(EventHandler<? super MouseEvent> value)
      Sets the value of the property onMouseClicked.
      Property description:
      Defines a function to be called when a mouse button has been clicked (pressed and released) on this Node.
    • getOnMouseClicked

      public final EventHandler<? super MouseEvent> getOnMouseClicked()
      Gets the value of the property onMouseClicked.
      Property description:
      Defines a function to be called when a mouse button has been clicked (pressed and released) on this Node.
    • setOnMouseDragged

      public final void setOnMouseDragged(EventHandler<? super MouseEvent> value)
      Sets the value of the property onMouseDragged.
      Property description:
      Defines a function to be called when a mouse button is pressed on this Node and then dragged.
    • getOnMouseDragged

      public final EventHandler<? super MouseEvent> getOnMouseDragged()
      Gets the value of the property onMouseDragged.
      Property description:
      Defines a function to be called when a mouse button is pressed on this Node and then dragged.
    • setOnMouseEntered

      public final void setOnMouseEntered(EventHandler<? super MouseEvent> value)
      Sets the value of the property onMouseEntered.
      Property description:
      Defines a function to be called when the mouse enters this Node.
    • getOnMouseEntered

      public final EventHandler<? super MouseEvent> getOnMouseEntered()
      Gets the value of the property onMouseEntered.
      Property description:
      Defines a function to be called when the mouse enters this Node.
    • setOnMouseExited

      public final void setOnMouseExited(EventHandler<? super MouseEvent> value)
      Sets the value of the property onMouseExited.
      Property description:
      Defines a function to be called when the mouse exits this Node.
    • getOnMouseExited

      public final EventHandler<? super MouseEvent> getOnMouseExited()
      Gets the value of the property onMouseExited.
      Property description:
      Defines a function to be called when the mouse exits this Node.
    • setOnMouseMoved

      public final void setOnMouseMoved(EventHandler<? super MouseEvent> value)
      Sets the value of the property onMouseMoved.
      Property description:
      Defines a function to be called when mouse cursor moves within this Node but no buttons have been pushed.
    • getOnMouseMoved

      public final EventHandler<? super MouseEvent> getOnMouseMoved()
      Gets the value of the property onMouseMoved.
      Property description:
      Defines a function to be called when mouse cursor moves within this Node but no buttons have been pushed.
    • setOnMousePressed

      public final void setOnMousePressed(EventHandler<? super MouseEvent> value)
      Sets the value of the property onMousePressed.
      Property description:
      Defines a function to be called when a mouse button has been pressed on this Node.
    • getOnMousePressed

      public final EventHandler<? super MouseEvent> getOnMousePressed()
      Gets the value of the property onMousePressed.
      Property description:
      Defines a function to be called when a mouse button has been pressed on this Node.
    • setOnMouseReleased

      public final void setOnMouseReleased(EventHandler<? super MouseEvent> value)
      Sets the value of the property onMouseReleased.
      Property description:
      Defines a function to be called when a mouse button has been released on this Node.
    • getOnMouseReleased

      public final EventHandler<? super MouseEvent> getOnMouseReleased()
      Gets the value of the property onMouseReleased.
      Property description:
      Defines a function to be called when a mouse button has been released on this Node.
    • setOnDragDetected

      public final void setOnDragDetected(EventHandler<? super MouseEvent> value)
      Sets the value of the property onDragDetected.
      Property description:
      Defines a function to be called when drag gesture has been detected. This is the right place to start drag and drop operation.
    • getOnDragDetected

      public final EventHandler<? super MouseEvent> getOnDragDetected()
      Gets the value of the property onDragDetected.
      Property description:
      Defines a function to be called when drag gesture has been detected. This is the right place to start drag and drop operation.
    • setOnMouseDragOver

      public final void setOnMouseDragOver(EventHandler<? super MouseDragEvent> value)
      Sets the value of the property onMouseDragOver.
      Property description:
      Defines a function to be called when a full press-drag-release gesture progresses within this Node.
      Since:
      JavaFX 2.1
    • getOnMouseDragOver

      public final EventHandler<? super MouseDragEvent> getOnMouseDragOver()
      Gets the value of the property onMouseDragOver.
      Property description:
      Defines a function to be called when a full press-drag-release gesture progresses within this Node.
      Since:
      JavaFX 2.1
    • setOnMouseDragReleased

      public final void setOnMouseDragReleased(EventHandler<? super MouseDragEvent> value)
      Sets the value of the property onMouseDragReleased.
      Property description:
      Defines a function to be called when a full press-drag-release gesture ends (by releasing mouse button) within this Node.
      Since:
      JavaFX 2.1
    • getOnMouseDragReleased

      public final EventHandler<? super MouseDragEvent> getOnMouseDragReleased()
      Gets the value of the property onMouseDragReleased.
      Property description:
      Defines a function to be called when a full press-drag-release gesture ends (by releasing mouse button) within this Node.
      Since:
      JavaFX 2.1
    • setOnMouseDragEntered

      public final void setOnMouseDragEntered(EventHandler<? super MouseDragEvent> value)
      Sets the value of the property onMouseDragEntered.
      Property description:
      Defines a function to be called when a full press-drag-release gesture enters this Node.
      Since:
      JavaFX 2.1
    • getOnMouseDragEntered

      public final EventHandler<? super MouseDragEvent> getOnMouseDragEntered()
      Gets the value of the property onMouseDragEntered.
      Property description:
      Defines a function to be called when a full press-drag-release gesture enters this Node.
      Since:
      JavaFX 2.1
    • setOnMouseDragExited

      public final void setOnMouseDragExited(EventHandler<? super MouseDragEvent> value)
      Sets the value of the property onMouseDragExited.
      Property description:
      Defines a function to be called when a full press-drag-release gesture leaves this Node.
      Since:
      JavaFX 2.1
    • getOnMouseDragExited

      public final EventHandler<? super MouseDragEvent> getOnMouseDragExited()
      Gets the value of the property onMouseDragExited.
      Property description:
      Defines a function to be called when a full press-drag-release gesture leaves this Node.
      Since:
      JavaFX 2.1
    • setOnScrollStarted

      public final void setOnScrollStarted(EventHandler<? super ScrollEvent> value)
      Sets the value of the property onScrollStarted.
      Property description:
      Defines a function to be called when a scrolling gesture is detected.
      Since:
      JavaFX 2.2
    • getOnScrollStarted

      public final EventHandler<? super ScrollEvent> getOnScrollStarted()
      Gets the value of the property onScrollStarted.
      Property description:
      Defines a function to be called when a scrolling gesture is detected.
      Since:
      JavaFX 2.2
    • setOnScroll

      public final void setOnScroll(EventHandler<? super ScrollEvent> value)
      Sets the value of the property onScroll.
      Property description:
      Defines a function to be called when user performs a scrolling action.
    • getOnScroll

      public final EventHandler<? super ScrollEvent> getOnScroll()
      Gets the value of the property onScroll.
      Property description:
      Defines a function to be called when user performs a scrolling action.
    • setOnScrollFinished

      public final void setOnScrollFinished(EventHandler<? super ScrollEvent> value)
      Sets the value of the property onScrollFinished.
      Property description:
      Defines a function to be called when a scrolling gesture ends.
      Since:
      JavaFX 2.2
    • getOnScrollFinished

      public final EventHandler<? super ScrollEvent> getOnScrollFinished()
      Gets the value of the property onScrollFinished.
      Property description:
      Defines a function to be called when a scrolling gesture ends.
      Since:
      JavaFX 2.2
    • setOnRotationStarted

      public final void setOnRotationStarted(EventHandler<? super RotateEvent> value)
      Sets the value of the property onRotationStarted.
      Property description:
      Defines a function to be called when a rotation gesture is detected.
      Since:
      JavaFX 2.2
    • getOnRotationStarted

      public final EventHandler<? super RotateEvent> getOnRotationStarted()
      Gets the value of the property onRotationStarted.
      Property description:
      Defines a function to be called when a rotation gesture is detected.
      Since:
      JavaFX 2.2
    • setOnRotate

      public final void setOnRotate(EventHandler<? super RotateEvent> value)
      Sets the value of the property onRotate.
      Property description:
      Defines a function to be called when user performs a rotation action.
      Since:
      JavaFX 2.2
    • getOnRotate

      public final EventHandler<? super RotateEvent> getOnRotate()
      Gets the value of the property onRotate.
      Property description:
      Defines a function to be called when user performs a rotation action.
      Since:
      JavaFX 2.2
    • setOnRotationFinished

      public final void setOnRotationFinished(EventHandler<? super RotateEvent> value)
      Sets the value of the property onRotationFinished.
      Property description:
      Defines a function to be called when a rotation gesture ends.
      Since:
      JavaFX 2.2
    • getOnRotationFinished

      public final EventHandler<? super RotateEvent> getOnRotationFinished()
      Gets the value of the property onRotationFinished.
      Property description:
      Defines a function to be called when a rotation gesture ends.
      Since:
      JavaFX 2.2
    • setOnZoomStarted

      public final void setOnZoomStarted(EventHandler<? super ZoomEvent> value)
      Sets the value of the property onZoomStarted.
      Property description:
      Defines a function to be called when a zooming gesture is detected.
      Since:
      JavaFX 2.2
    • getOnZoomStarted

      public final EventHandler<? super ZoomEvent> getOnZoomStarted()
      Gets the value of the property onZoomStarted.
      Property description:
      Defines a function to be called when a zooming gesture is detected.
      Since:
      JavaFX 2.2
    • setOnZoom

      public final void setOnZoom(EventHandler<? super ZoomEvent> value)
      Sets the value of the property onZoom.
      Property description:
      Defines a function to be called when user performs a zooming action.
      Since:
      JavaFX 2.2
    • getOnZoom

      public final EventHandler<? super ZoomEvent> getOnZoom()
      Gets the value of the property onZoom.
      Property description:
      Defines a function to be called when user performs a zooming action.
      Since:
      JavaFX 2.2
    • setOnZoomFinished

      public final void setOnZoomFinished(EventHandler<? super ZoomEvent> value)
      Sets the value of the property onZoomFinished.
      Property description:
      Defines a function to be called when a zooming gesture ends.
      Since:
      JavaFX 2.2
    • getOnZoomFinished

      public final EventHandler<? super ZoomEvent> getOnZoomFinished()
      Gets the value of the property onZoomFinished.
      Property description:
      Defines a function to be called when a zooming gesture ends.
      Since:
      JavaFX 2.2
    • setOnSwipeUp

      public final void setOnSwipeUp(EventHandler<? super SwipeEvent> value)
      Sets the value of the property onSwipeUp.
      Property description:
      Defines a function to be called when an upward swipe gesture centered over this node happens.
      Since:
      JavaFX 2.2
    • getOnSwipeUp

      public final EventHandler<? super SwipeEvent> getOnSwipeUp()
      Gets the value of the property onSwipeUp.
      Property description:
      Defines a function to be called when an upward swipe gesture centered over this node happens.
      Since:
      JavaFX 2.2
    • setOnSwipeDown

      public final void setOnSwipeDown(EventHandler<? super SwipeEvent> value)
      Sets the value of the property onSwipeDown.
      Property description:
      Defines a function to be called when a downward swipe gesture centered over this node happens.
      Since:
      JavaFX 2.2
    • getOnSwipeDown

      public final EventHandler<? super SwipeEvent> getOnSwipeDown()
      Gets the value of the property onSwipeDown.
      Property description:
      Defines a function to be called when a downward swipe gesture centered over this node happens.
      Since:
      JavaFX 2.2
    • setOnSwipeLeft

      public final void setOnSwipeLeft(EventHandler<? super SwipeEvent> value)
      Sets the value of the property onSwipeLeft.
      Property description:
      Defines a function to be called when a leftward swipe gesture centered over this node happens.
      Since:
      JavaFX 2.2
    • getOnSwipeLeft

      public final EventHandler<? super SwipeEvent> getOnSwipeLeft()
      Gets the value of the property onSwipeLeft.
      Property description:
      Defines a function to be called when a leftward swipe gesture centered over this node happens.
      Since:
      JavaFX 2.2
    • setOnSwipeRight

      public final void setOnSwipeRight(EventHandler<? super SwipeEvent> value)
      Sets the value of the property onSwipeRight.
      Property description:
      Defines a function to be called when an rightward swipe gesture centered over this node happens.
      Since:
      JavaFX 2.2
    • getOnSwipeRight

      public final EventHandler<? super SwipeEvent> getOnSwipeRight()
      Gets the value of the property onSwipeRight.
      Property description:
      Defines a function to be called when an rightward swipe gesture centered over this node happens.
      Since:
      JavaFX 2.2
    • setOnTouchPressed

      public final void setOnTouchPressed(EventHandler<? super TouchEvent> value)
      Sets the value of the property onTouchPressed.
      Property description:
      Defines a function to be called when a new touch point is pressed.
      Since:
      JavaFX 2.2
    • getOnTouchPressed

      public final EventHandler<? super TouchEvent> getOnTouchPressed()
      Gets the value of the property onTouchPressed.
      Property description:
      Defines a function to be called when a new touch point is pressed.
      Since:
      JavaFX 2.2
    • setOnTouchMoved

      public final void setOnTouchMoved(EventHandler<? super TouchEvent> value)
      Sets the value of the property onTouchMoved.
      Property description:
      Defines a function to be called when a touch point is moved.
      Since:
      JavaFX 2.2
    • getOnTouchMoved

      public final EventHandler<? super TouchEvent> getOnTouchMoved()
      Gets the value of the property onTouchMoved.
      Property description:
      Defines a function to be called when a touch point is moved.
      Since:
      JavaFX 2.2
    • setOnTouchReleased

      public final void setOnTouchReleased(EventHandler<? super TouchEvent> value)
      Sets the value of the property onTouchReleased.
      Property description:
      Defines a function to be called when a touch point is released.
      Since:
      JavaFX 2.2
    • getOnTouchReleased

      public final EventHandler<? super TouchEvent> getOnTouchReleased()
      Gets the value of the property onTouchReleased.
      Property description:
      Defines a function to be called when a touch point is released.
      Since:
      JavaFX 2.2
    • setOnTouchStationary

      public final void setOnTouchStationary(EventHandler<? super TouchEvent> value)
      Sets the value of the property onTouchStationary.
      Property description:
      Defines a function to be called when a touch point stays pressed and still.
      Since:
      JavaFX 2.2
    • getOnTouchStationary

      public final EventHandler<? super TouchEvent> getOnTouchStationary()
      Gets the value of the property onTouchStationary.
      Property description:
      Defines a function to be called when a touch point stays pressed and still.
      Since:
      JavaFX 2.2
    • setOnKeyPressed

      public final void setOnKeyPressed(EventHandler<? super KeyEvent> value)
      Sets the value of the property onKeyPressed.
      Property description:
      Defines a function to be called when this Node or its child Node has input focus and a key has been pressed. The function is called only if the event hasn't been already consumed during its capturing or bubbling phase.
    • getOnKeyPressed

      public final EventHandler<? super KeyEvent> getOnKeyPressed()
      Gets the value of the property onKeyPressed.
      Property description:
      Defines a function to be called when this Node or its child Node has input focus and a key has been pressed. The function is called only if the event hasn't been already consumed during its capturing or bubbling phase.
    • setOnKeyReleased

      public final void setOnKeyReleased(EventHandler<? super KeyEvent> value)
      Sets the value of the property onKeyReleased.
      Property description:
      Defines a function to be called when this Node or its child Node has input focus and a key has been released. The function is called only if the event hasn't been already consumed during its capturing or bubbling phase.
    • getOnKeyReleased

      public final EventHandler<? super KeyEvent> getOnKeyReleased()
      Gets the value of the property onKeyReleased.
      Property description:
      Defines a function to be called when this Node or its child Node has input focus and a key has been released. The function is called only if the event hasn't been already consumed during its capturing or bubbling phase.
    • setOnKeyTyped

      public final void setOnKeyTyped(EventHandler<? super KeyEvent> value)
      Sets the value of the property onKeyTyped.
      Property description:
      Defines a function to be called when this Node or its child Node has input focus and a key has been typed. The function is called only if the event hasn't been already consumed during its capturing or bubbling phase.
    • getOnKeyTyped

      public final EventHandler<? super KeyEvent> getOnKeyTyped()
      Gets the value of the property onKeyTyped.
      Property description:
      Defines a function to be called when this Node or its child Node has input focus and a key has been typed. The function is called only if the event hasn't been already consumed during its capturing or bubbling phase.
    • setOnInputMethodTextChanged

      public final void setOnInputMethodTextChanged(EventHandler<? super InputMethodEvent> value)
      Sets the value of the property onInputMethodTextChanged.
      Property description:
      Defines a function to be called when this Node has input focus and the input method text has changed. If this function is not defined in this Node, then it receives the result string of the input method composition as a series of onKeyTyped function calls.

      When the Node loses the input focus, the JavaFX runtime automatically commits the existing composed text if any.
    • getOnInputMethodTextChanged

      public final EventHandler<? super InputMethodEvent> getOnInputMethodTextChanged()
      Gets the value of the property onInputMethodTextChanged.
      Property description:
      Defines a function to be called when this Node has input focus and the input method text has changed. If this function is not defined in this Node, then it receives the result string of the input method composition as a series of onKeyTyped function calls.

      When the Node loses the input focus, the JavaFX runtime automatically commits the existing composed text if any.
    • onInputMethodTextChangedProperty

      public final ObjectProperty<EventHandler<? super InputMethodEvent>> onInputMethodTextChangedProperty()
      Defines a function to be called when this Node has input focus and the input method text has changed. If this function is not defined in this Node, then it receives the result string of the input method composition as a series of onKeyTyped function calls.

      When the Node loses the input focus, the JavaFX runtime automatically commits the existing composed text if any.
      See Also:
      getOnInputMethodTextChanged(), setOnInputMethodTextChanged(EventHandler)
    • setInputMethodRequests

      public final void setInputMethodRequests(InputMethodRequests value)
      Sets the value of the property inputMethodRequests.
      Property description:
      Property holding InputMethodRequests.
    • getInputMethodRequests

      public final InputMethodRequests getInputMethodRequests()
      Gets the value of the property inputMethodReq become the focused window. To be eligible to receive the focus, the node must be part of a scene, it and all of its ancestors must be visible, and it must not be disabled. If this node is eligible, this function will cause it to become this Scene's "focus owner". Each scene has at most one focus owner node. The focus owner will not actually have the input focus, however, unless the scene belongs to a Stage that is both visible and active.
    • toString

      public String toString()
      Returns a string representation for the object.
      Overrides:
      toString in class Object
      Returns:
      a string representation for the object.
    • setEventDispatcher

      public final void setEventDispatcher(EventDispatcher value)
      Sets the value of the property eventDispatcher.
      Property description:
      Specifies the event dispatcher for this node. The default event dispatcher sends the received events to the registered event handlers and filterequestFocus--">requestFocus() for more information.
      Default value:
      false
    • isFocused

      public final boolean isFocused()
      Gets the value of the property focused.
      Property description:
      Indicates whether this Node currently has the input focus. To have the input focus, a node must be the Scene's focus owner, and the scene must be in a Stage that is visible and active. See requestFocus() for more information.
      Default value:
      false
    • focusedProperty

      public final ReadOnlyBooleanProperty focusedProperty()
      Indicates whether this Node currently has the input focus. To have the input focus, a node must be the Scene's focus owner, and the scene must be in a Stage that is visible and active. See requestFocus() for more information.
      Default value:
      false
      See Also:
      isFocused(), setFocused(boolean)
    • setFocusTraversable

      public final void setFocusTraversable(boolean value)
      Sets the value of the property focusTraversable.
      Property description:
      Specifies whether this Node should be a part of focus traversal cycle. When this property is true focus can be moved to this Node and from this Node using regular focus traversal keys. On a desktop such keys are usually TAB for moving focus forward and SHIFT+TAB for moving focus backward. When a Scene is created, the system gives focus to a Node whose focusTraversable variable is true and that is eligible to receive the focus, unless the focus had been set explicitly via a call to requestFocus().
      Default value:
      false
    • isFocusTraversable

      public final boolean - the handler to register
      
      Throws:
      NullPointerException - if the event type or handler is null
    • removeEventHandler

      public final <T extends Event> void removeEventHandler(EventType<T> eventType,
                                                             EventHandler<? super T> eventHandler)
      Unregisters a previously registered event handler from this node. One handler might have been registered for different event types, so the caller needs to specify the particular event type from which to unregister the handler.
      Type Parameters:
      T - the specific event class of the handler
      Parameters:
      eventType - the event type from which to unregister
      eventHandler - the handler to unregister
      Throws:
      NullPointerException - if the event type or handler is null
    requestFocus().
    Default value:
    false
    See Also:
    isFocusTraversable(), setFocusTraversable(boolean)
    T - the specific event class of the filter
    Parameters:
    eventType - the type of the events to receive by the filter
    eventFilter - the filter to register
    Throws:
    NullPointerException - if the event type or filter is null
    • removeEventFilter

      public final <T extends Event> void removeEventFilter(
      

      toString

      public String toString()
      Returns a string representation for the object.
      Overrides:
      toString in class Object
      Returns:
      a string representation for the object.
      Throws:
      NullPointerException - if the event type or filter is null
    • setEventHandler

      protected final <T extends Event> void setEventHandler(EventType<T> eventType,
                                                             EventHandler<? super T> eventHandler)
      Sets the handler to use for this event type. There can only be one such handler specified at a time. This handler is guaranteed to be called as the last, after handlers added using addEventHandler(javafx.event.EventType, javafx.event.EventHandler). This is used for registering the user-defined onFoo event handlers.
      Type Parameters:
      T - the specific event class of the handler
      Parameters:
      eventType - the event type to associate with the given eventHandler
      eventHandler - the handler to register, or null to unregister
      Throws:
      NullPointerException - if the event type is null
    havior.
    • eventDispatcherProperty

      public final ObjectProperty<EventDispatcher> eventDispatcherProperty()
      Specifies the event dispatcher for this node. The default event dispatcher sends the received events to the registered event handlers and filters. When replacing the value with a new EventDispatcher, the new dispatcher should forward events to the replaced dispatcher to maintain the node's default event handling behavior.
      See Also:
      getEventDispatcher(), setEventDispatcher(EventDispatcher)
    • addEventHandler

      public final <T extends Event> void addEventHandler(EventType<T> eventType,
                                                         e event handlers on this node are notified. If these don't consume the
       event eighter, the event will travel back the same path it arrived to
       this node. All event handlers encountered are called and can consume the
       event.
       

      This method must be called on the FX user thread.

      Parameters:
      event - the event to fire