0% found this document useful (0 votes)
2 views

Intro to JavaFx

JavaFX is a GUI toolkit for building desktop and mobile applications using Java, featuring components like Stage, Scene, Layout, Control, and Events. To create a JavaFX application, one must create a Stage, a Scene, and add Controls using a Layout, while also handling user interactions through events. JavaFX applications are flexible, portable, and performant, allowing for a wide variety of user interface designs.

Uploaded by

Pranav Ahuja
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Intro to JavaFx

JavaFX is a GUI toolkit for building desktop and mobile applications using Java, featuring components like Stage, Scene, Layout, Control, and Events. To create a JavaFX application, one must create a Stage, a Scene, and add Controls using a Layout, while also handling user interactions through events. JavaFX applications are flexible, portable, and performant, allowing for a wide variety of user interface designs.

Uploaded by

Pranav Ahuja
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Introduction to JavaFX

JavaFX is a graphical user interface toolkit for building desktop and mobile
applications. It is based on the Java programming language and provides a rich set of
features for creating user interfaces that features audio, video graphics and animation
including:
Stage: A Stage represents a top-level window on the screen. It contains a
Scene, which is the content of the window.
Scene: A Scene is a container that holds the content of a window. It can
contain any type of JavaFX node, including controls, shapes, and text.
Layout: A Layout is a way of arranging nodes in a Scene. There are many
different types of layouts available, such as BorderPane, FlowPane, and
GridPane. The choice of layout depends on the specific needs of the
application.
Control:A Control is a node that allows the user to interact with the
application. Examples of Controls include buttons, text fields, and check boxes.
Event:An Event is a notification that is sent to a Control when a user interacts
with it. For example, a Button event is fired when the user clicks the button.
To create a JavaFX application, follow the steps below:
1. Create a Stage
2. Create a Scene and add it to Stage
3. Add Controls to the Scene and arrange them using a Layout.
In nutshell, Control are added to layout, layout is added to scene and scene is added
to stage.
To listen for events, you can use the `onAction()` method. The `onAction()` method
takes a lambda expression as its argument. The lambda expression will be executed
when the event occurs.
Also, to create a javafx application we need to do the following:
1. Import java.application.Application class
2. Inherit Application class in your class
3. Override the start method of the Application class
Here is an example of a simple JavaFX application:
/*This application will create a window with a button. When the user clicks the
button, the message "You clicked the button!" will be printed to the console.*/
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;
public class MyApp extends Application {
@Override
public void start(Stage stage) throws Exception {
Button button = new Button("Click Me!");
button.setOnAction(event -> {
System.out.println("You clicked the button!");
});
Scene scene = new Scene(button);
stage.setTitle("My JavaFX Application");
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}

Stage, Scene, Layout, Control, and Events are the fundamental building blocks of
JavaFX applications. By understanding how to use these concepts, you can create a
wide variety of JavaFX applications.
Here are some additional benefits of using Stage, Scene, Layout, Control, and Events
in JavaFX:
Flexibility: JavaFX applications are highly flexible and can be customized to
meet the specific needs of the application.
Portability: JavaFX applications are portable and can be run on a variety of
platforms, including Windows, macOS, and Linux.
Performance: JavaFX applications are performant and can be used to create
high-performance graphical user interfaces.
Overall, Stage, Scene, Layout, Control, and Events are a powerful set of tools for
creating JavaFX applications. By understanding how to use these concepts, you can
create a wide variety of flexible, portable, and performant graphical user interfaces.
package practiceproject;
import java.io.*;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
public class democlass extends Application{
public static void main(String[] args){
launch();// to be called only once from main()
}
@Override
public void start(Stage primaryStage) throws Exception {
Button bt1 = new Button("Click Me"); //control
HBox h = new HBox(); //layout
h.getChildren().add(bt1); //adding control to layout
Scene sc = new Scene(h); //creating scene and adding
//layout to scene
primaryStage.setScene(sc);
primaryStage.show();
}
}
HBox layout demo Code in javafx.
package practiceproject;
import java.io.*;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
public class democlass extends Application{
public static void main(String[] args){
launch(); }
public void start(Stage primaryStage) throws Exception {
Button bt1 = new Button("Click Me");
Button bt2 = new Button("Click Me");
Button bt3 = new Button("Click Me");
Button bt4 = new Button("Click Me");
Button bt5 = new Button("Click Me");
HBox h = new HBox();
h.getChildren().add(bt1);
h.getChildren().add(bt2);
h.getChildren().add(bt3);
h.getChildren().add(bt4);
h.getChildren().add(bt5);
Scene sc = new Scene(h);
primaryStage.setScene(sc);
primaryStage.setWidth(300);
primaryStage.setHeight(300);
primaryStage.show();}}
VBox layout demo Code in javafx
package practiceproject;
import java.io.*;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class democlass extends Application{
public static void main(String[] args){
launch(); }
public void start(Stage primaryStage) throws Exception {
Button bt1 = new Button("Click Me");
Button bt2 = new Button("Click Me");
Button bt3 = new Button("Click Me");
Button bt4 = new Button("Click Me");
VBox h = new VBox();
h.getChildren().add(bt1);
h.getChildren().add(bt2);
h.getChildren().add(bt3);
h.getChildren().add(bt4);
Scene sc = new Scene(h);
primaryStage.setScene(sc);
primaryStage.setWidth(300);
primaryStage.setHeight(300);
primaryStage.show(); }}
Grid Pane layout demo Code in javafx
package practiceproject;
import java.io.*;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class democlass extends Application{
public static void main(String[] args){
launch(); }
public void start(Stage primaryStage) throws Exception {
Button bt1 = new Button("Click Me");
Button bt2 = new Button("Click Me");
Button bt3 = new Button("Click Me");
Button bt4 = new Button("Click Me");
GridPane root = new GridPane();
root.add(bt1, 0, 0);
root.add(bt2, 1, 0);
root.add(bt3, 2, 0);
Scene sc = new Scene(root);
primaryStage.setScene(sc);
primaryStage.setWidth(300);
primaryStage.setHeight(300);
primaryStage.show();
}}
Making Grid Lines visible on a Grid Pane layout demo Code in javafx
package practiceproject;
import java.io.*;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class democlass extends Application{
public static void main(String[] args){
launch(); }
public void start(Stage primaryStage) throws Exception {
Button bt1 = new Button("Click Me");
Button bt2 = new Button("Click Me");
Button bt3 = new Button("Click Me");
GridPane root = new GridPane();
root.add(bt1, 0, 0); // 0, 0 column and row indices resp
root.add(bt2, 1, 1);
root.add(bt3, 2, 2);
root.setGridLinesVisible(true);
Scene sc = new Scene(root);
primaryStage.setScene(sc);
primaryStage.setWidth(300);
primaryStage.setHeight(300);
primaryStage.show();
}}
Setting VGAP and HGAP on a Grid Pane layout demo Code in javafx
import java.io.*;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class democlass extends Application{
public static void main(String[] args){
launch(); }
public void start(Stage primaryStage) throws Exception {
Button bt1 = new Button("Click Me");
Button bt2 = new Button("Click Me");
Button bt3 = new Button("Click Me");
GridPane root = new GridPane();
root.add(bt1, 0, 0); // 0, 0 column and row indices resp
root.add(bt2, 1, 1);
root.add(bt3, 2, 2);
root.setHgap(20);
root.setVgap(20);
Scene sc = new Scene(root);
primaryStage.setScene(sc);
primaryStage.setWidth(300);
primaryStage.setHeight(300);
primaryStage.show(); }}
flowpane layout demo Code in javafx
package practiceproject;
import java.io.*;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.FlowPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class democlass extends Application{
public static void main(String[] args){
launch();
}

@Override
public void start(Stage primaryStage) throws Exception {
Button bt1 = new Button("Click Me");
Button bt2 = new Button("Click Me");
Button bt3 = new Button("Click Me");
Button bt4 = new Button("Click Me");
Button bt5 = new Button("Click Me");
Button bt6 = new Button("Click Me");
Button bt7 = new Button("Click Me");
Button bt8 = new Button("Click Me");
Button bt9 = new Button("Click Me");
Button bt10 = new Button("Click Me");
Button bt11 = new Button("Click Me");
Button bt12 = new Button("Click Me");
FlowPane h = new FlowPane();
h.getChildren().add(bt1);
h.getChildren().add(bt2);
h.getChildren().add(bt3);
h.getChildren().add(bt4);
h.getChildren().add(bt5);
h.getChildren().add(bt6);
h.getChildren().add(bt7);
h.getChildren().add(bt8);
h.getChildren().add(bt9);
h.getChildren().add(bt10);
h.getChildren().add(bt11);
h.getChildren().add(bt12);
Scene sc = new Scene(h);
primaryStage.setScene(sc);
primaryStage.setWidth(300);
primaryStage.setHeight(300);
primaryStage.show();
}
}

You might also like