Download presentation
Presentation is loading. Please wait.
1
Chapter 34 Advanced JavaFX
2
Objectives To specify styles for UI nodes using JavaFX CSS (§34.2).
To simplify creating JavaFX nodes using the builder classes (§34.3). To create quadratic curve, cubic curve, and path using the QuadCurve, CubicCurve, and Path classes (§34.4). To translation, rotation, and scaling to perform coordinate transformations for nodes (§34.5). To define a shape’s border using various types of strokes (§34.6). To create menus using the Menu, MenuItem, CheckMenuItem, and RadioMemuItem classes (§34.7). To create context menus using the ContextMenu class (§34.8). To use SplitPane to create adjustable horizontal and vertical panes (§34.9). To create tab panes using the TabPane control (§34.10). To create and display tables using the TableView and TableColumn classes (§34.11).
3
JavaFX CSS A JavaFX style property is defined with a prefix –fx- to distinquish it from a property in CSS. All the available JavaFX properties are defined in Listing 34.1 gives an example of a style sheet .
4
Style Class and Style ID
A style sheet uses the style class or style id to define styles. Mutiple style classes can be applied to a single node and a style id to a unique node. The syntax .styleclass defines a style class. The syntax #styleid defines a style id. mystyle.css StyleSheetDemo Run
5
Builder Classes The builder classes can be used to simplify creating JavaFX nodes. JavaFX provides a builder class for every node. Using the builder class can sometimes simplify coding. It is particularly useful when creating multiple objects of the same type with common properties. BuilderClassDemo Run
6
QuadCurve A quadratic curve is mathematically defined as a quadratic polynomial. To create a QuadCurve, use its no-arg constructor or the following constructor: QuadCurve(double startX, double startY, double controlX, double controlY, double endX, double endY)
7
QuadCurve
8
CubicCurve A cubic curve is mathematically defined as a cubic polynomial. To create a CubicCurve, use its no-arg constructor or the following constructor: CubicCurve(double startX, double startY, double controlX1, double controlY1, double controlX2, double controlY2, double endX, double endY)
9
CubicCurve CurveDemo Run
10
Curve Demo CurveDemo Run
11
Path The Path class models an arbitrary geometric path. A path is constructed by adding path elements into the path. The PathElement is the root class for the path elements MoveTo, HLineTo, VLineTo, LineTo, ArcTo, QuadCurveTo, CubicCurveTo, and ClosePath. PathDemo Run
12
Path PathDemo Run ClosePath HLineTo VLineTo LineTo CubicCurveTo ArcTo
QuadCurveTo PathDemo Run
13
Coordinate Transformations
JavaFX supports coordinate transformations using translation, rotation, and scaling.
14
Translations You can use the setTranslateX(double x), setTranslateY(double y), and setTranslateZ(double z)methods in the Node class to translate the coordinates for a node. TransitionDemo Run
15
Rotations You can use the rotate(double theta) method in the Node class to rotate a node by theta degrees from its pivot point clockwise, where theta is a double value in degrees. The pivot point is automatically computed based on the bounds of the node. RotationDemo Run
16
Scaling You can use the setScaleX(double sx), setScaleY(double sy) , and setScaleY(double sy) methods in the Node class to specify a scaling factor. The node will 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 is multiplied by the scale factor. As with rotation transformations, scaling transformations are applied to enlarge or shrink the node around the pivot point. For a node of the rectangle shape, the pivot point is the center of the rectangle.
17
Scaling ScaleDemo Run
18
Strokes
19
strokeType The setStrokeType(type) method sets a type for the stroke. The type defines whether the stroke is inside, outside, or in the center of the border using the constants StrokeType.INSIDE, StrokeType.CENTERED (default), or StrokeType.OUTSIDE,
20
strokeLineCap The setStrokeType(type) method sets a type for the stroke. The type defines whether the stroke is inside, outside, or in the center of the border using the constants StrokeType.INSIDE, StrokeType.CENTERED (default), or StrokeType.OUTSIDE,
21
strokeLineJoin The setStrokeLineJoin method defines the decoration applied where path segments meet. You can specify three types of line join using the constants StrokeLineJoin.MITER (default), StrokeLineJoin.BEVEL, and StrokeLineJoin.ROUND.
22
strokeDashArray The Shape class has a property named strokeDashArray of the ObservableList<Double> type. This property is used to define a dashed pattern for the stroke. Alternate numbers in the list specify the lengths of the opaque and transparent segments of the dashes.
23
Stroke Demo StrokeDemo Run
24
Menu Menus make selection easier and are widely used in window applications. JavaFX provides five classes that implement menus: MenuBar, Menu, MenuItem, CheckMenuItem, and RadioButtonMenuItem. MenuBar is a top-level menu component used to hold the menus. A menu consists of menu items that the user can select (or toggle on or off). A menu item can be an instance of MenuItem, CheckMenuItem, or RadioButtonMenuItem. Menu items can be associated with nodes and keyboard accelerators.
25
Creating Menus MenuDemo Run
26
Context Menu A context menu, also known as a popup menu, is like a regular menu, but does not have a menu bar and can float anywhere on the screen. Creating a context menu is similar to creating a regular menu. First, you create an instance of ContextMenu, then you can add MenuItem, CheckMenuItem, and RadioMenuItem to the context menu.
27
Creating Context Menus
ContextMenuDemo Run
28
SplitPane The SplitPane class can be used to display multiple panes and allow the user to adjust the size of the panes.
29
Using SplitPane SplitPaneDemo Run
30
TabPane The TabPane class can be used to display multiple panes with tabs.
31
The TabPane Class
32
The Tab Class TabPaneDemo Run
33
TableView You can display tables using the TableView class.
TableViewDemo Run
34
The TableView Class
35
The TableColumn Class
36
Add New Row You can display tables using the TableView class.
AddNewRowDemo Run
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.