Questions and Answers
Why is JavaFX preferred? (Select all that apply)
Every JavaFX main class __________.
extends javafx.application.Application
Which of the following statements are true? (Select all that apply)
What is the output of the following JavaFX program? import javafx.application.Application; import javafx.stage.Stage; public class Test extends Application { public Test() { System.out.println("Test constructor is invoked."); } @Override public void start(Stage primaryStage) { System.out.println("start method is invoked."); } public static void main(String[] args) { System.out.println("launch application."); Application.launch(args); }}
Signup and view all the answers
Which of the following statements are true? (Select all that apply)
Signup and view all the answers
Which of the following statements are true?
Signup and view all the answers
Which of the following statements are correct? (Select all that apply)
Signup and view all the answers
To add a circle object into a pane, use _________.
Signup and view all the answers
Which of the following statements are correct? (Select all that apply)
Signup and view all the answers
Which of the following are binding properties? (Select all that apply)
Signup and view all the answers
Which of the following can be used as a source for binding properties? (Select all that apply)
Signup and view all the answers
Suppose a JavaFX class has a binding property named weight of the type DoubleProperty. By convention, which of the following methods are defined in the class?
Signup and view all the answers
What is the output of the following code? import javafx.beans.property.IntegerProperty; import javafx.beans.property.SimpleIntegerProperty; public class Test { public static void main(String[] args) { IntegerProperty d1 = new SimpleIntegerProperty(1); IntegerProperty d2 = new SimpleIntegerProperty(2); d1.bind(d2); System.out.print("d1 is " + d1.getValue() + " and d2 is " + d2.getValue()); d2.setValue(3); System.out.println(", d1 is " + d1.getValue() + " and d2 is " + d2.getValue()); }}
Signup and view all the answers
What is the output of the following code? import javafx.beans.property.IntegerProperty; import javafx.beans.property.SimpleIntegerProperty; public class Test { public static void main(String[] args) { IntegerProperty d1 = new SimpleIntegerProperty(1); IntegerProperty d2 = new SimpleIntegerProperty(2); d1.bindBidirectional(d2); System.out.print("d1 is " + d1.getValue() + " and d2 is " + d2.getValue()); d1.setValue(3); System.out.println(", d1 is " + d1.getValue() + " and d2 is " + d2.getValue()); }}
Signup and view all the answers
Which of the following statements correctly sets the fill color of a circle to black? (Select all that apply)
Signup and view all the answers
Which of the following statements correctly rotates the button 45 degrees counterclockwise? (Select all that apply)
Signup and view all the answers
Which of the following statements correctly creates a Color object? (Select all that apply)
Signup and view all the answers
Which of the following statements correctly creates a Font object? (Select all that apply)
Signup and view all the answers
Which of the following statements are correct? (Select all that apply)
Signup and view all the answers
Which of the following statements correctly creates an ImageView object? (Select all that apply)
Signup and view all the answers
Analyze the following code: import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; import javafx.geometry.Insets; import javafx.stage.Stage; import javafx.scene.image.Image; import javafx.scene.image.ImageView; public class Test extends Application { @Override public void start(Stage primaryStage) { Pane pane = new HBox(10); pane.setPadding(new Insets(5, 5, 5, 5)); Image image = new Image("www.cs.armstrong.edu/liang/image/us.gif"); pane.getChildren().addAll(new ImageView(image), new ImageView(image)); Scene scene = new Scene(pane); primaryStage.setTitle("ShowImage"); primaryStage.setScene(scene); primaryStage.show(); }}
Signup and view all the answers
To add a node into a pane, use ______.
Signup and view all the answers
To add two nodes node1 and node2 into a pane, use ______.
Signup and view all the answers
To remove a node from the pane, use ______.
Signup and view all the answers
To remove two nodes node1 and node2 from a pane, use ______.
Signup and view all the answers
Which of the following statements are correct to create a FlowPane? (Select all that apply)
Signup and view all the answers
To add a node to the first row and second column in a GridPane pane, use ________.
Signup and view all the answers
To add two nodes node1 and node2 to the first row in a GridPane pane, use ________.
Signup and view all the answers
To place a node in the left of a BorderPane p, use ___________.
Signup and view all the answers
To place two nodes node1 and node2 in a HBox p, use ___________.
Signup and view all the answers
Analyze the following code: import javafx.application.Application; import javafx.scene.Scene; import javafx.stage.Stage; import javafx.scene.layout.HBox; import javafx.scene.shape.Circle; public class Test extends Application { @Override public void start(Stage primaryStage) { HBox pane = new HBox(5); Circle circle = new Circle(50, 200, 200); pane.getChildren().addAll(circle); circle.setCenterX(100); circle.setCenterY(100); circle.setRadius(50); pane.getChildren().addAll(circle); Scene scene = new Scene(pane); primaryStage.setTitle("Test"); primaryStage.setScene(scene); primaryStage.show(); }}
Signup and view all the answers
The _________ properties are defined in the javafx.scene.shape.Shape class. (Select all that apply)
Signup and view all the answers
The _________ properties are defined in the javafx.scene.text.Text class. (Select all that apply)
Signup and view all the answers
The _________ properties are defined in the javafx.scene.shape.Line class. (Select all that apply)
Signup and view all the answers
The _________ properties are defined in the javafx.scene.shape.Rectangle class. (Select all that apply)
Signup and view all the answers
The _________ properties are defined in the javafx.scene.shape.Ellipse class. (Select all that apply)
Signup and view all the answers
To construct a Polygon with three points x1, y1, x2, y2, x3, and y3, use _________. (Select all that apply)
Signup and view all the answers
To construct a Polyline with three points x1, y1, x2, y2, x3, and y3, use _________. (Select all that apply)
Signup and view all the answers
Assume p is a Polygon, to add a point (4, 5) into p, use _______. (Select all that apply)
Signup and view all the answers
Study Notes
JavaFX Overview
- JavaFX offers a user-friendly experience for new Java programmers, making it easier to learn and use.
- Provides native support for multi-touch on devices like tablets and smartphones.
- Features built-in support for 3D graphics, animation, video, and audio playback; can be run standalone or through a browser.
- Utilizes modern GUI technologies, facilitating the development of rich Internet applications.
JavaFX Main Class
- Every JavaFX application's main class extends
javafx.application.Application
. - Must override the
start(Stage s)
method to define the entry point for the application.
Stages and Scenes
- A primary stage is automatically created when launching a JavaFX application.
- Multiple stages can be displayed simultaneously in a JavaFX program.
- The
show()
method is used to display a stage. - To place a scene onto a stage, use the
setScene()
method. - A scene is typically composed of multiple nodes and is added directly to the stage.
Node and Pane Interactions
- Shapes, controls, and panes are all considered nodes in JavaFX.
- A node can be placed inside a Pane using
getChildren().add(node)
. - To add multiple nodes, use
getChildren().addAll(node1, node2)
.
Binding Properties
- Binding properties such as
IntegerProperty
andDoubleProperty
allow for dynamic changes in value. - Define getters, setters, and property methods for binding properties in custom classes.
Color and Font Objects
- Color objects are immutable, with the ability to set fill colors using methods like
setFill(Color.BLACK)
. - Font objects can be created with specified attributes such as font name, weight, and size.
ImageView Objects
- Create
ImageView
objects usingnew ImageView(new Image("url"))
syntax to display images.
Layout Containers
- Common layout containers include
FlowPane
,GridPane
, andBorderPane
, each offering positioning and alignment of nodes. -
GridPane
uses a row and column system to place nodes, whileBorderPane
allows nodes to be positioned at the top, bottom, left, right, and center.
Shapes and Properties
- Various shape classes (e.g.,
Circle
,Rectangle
,Line
,Ellipse
) come with specific properties defining their geometric characteristics. - Shapes can be manipulated with properties such as center coordinates, radius, width, height, and stroke color.
Polygon and Polyline Construction
- Create
Polygon
andPolyline
objects with specified points using constructors or methods to add points to their point lists.
Error Handling
- Attempting to add a node to a pane multiple times can lead to compile or runtime errors.
- Errors often arise from incorrectly configuring paths or parameters in code.
Summary of Code Outputs
- Familiarize with the expected outputs from code snippets involving property bindings and image loading, as it illustrates dynamic behavior in JavaFX applications.
Practical Usage Tips
- Always remove nodes using
getChildren().remove(node)
and add them usinggetChildren().add(node)
to avoid duplication issues. - Ensure images have complete URLs for proper loading in
ImageView
.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
Test your knowledge on JavaFX and its features with these flashcards. This chapter emphasizes the advantages of using JavaFX for modern application development. Explore multi-touch support, built-in media capabilities, and its user-friendly nature.