Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 34 Advanced JavaFX

Similar presentations


Presentation on theme: "Chapter 34 Advanced JavaFX"— Presentation transcript:

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


Download ppt "Chapter 34 Advanced JavaFX"

Similar presentations


Ads by Google