×

Làm việc với JavaFX để tạo ứng dụng desktop trong Java

JavaFX là một framework mạnh mẽ và linh hoạt giúp việc phát triển ứng dụng desktop trong Java trở nên dễ dàng hơn. Được Oracle phát hành lần đầu vào năm 2008, JavaFX đã trở thành một lựa chọn phổ biến cho những ai muốn tận dụng sức mạnh của ngôn ngữ Java để tạo ra các ứng dụng có giao diện đẹp mắt và hiệu năng tốt.

Giới thiệu JavaFX

JavaFX là một thư viện chuyên dụng cho việc xây dựng giao diện người dùng (GUI) trong các ứng dụng Java desktop. Nó cung cấp các API mạnh mẽ cho đồ họa 2D và 3D, điều khiển giao diện, và khả năng xử lý đa phương tiện. Một trong những điểm mạnh của JavaFX là khả năng tạo ra các giao diện động và bắt mắt, cùng với việc hỗ trợ CSS cho việc tùy chỉnh giao diện.

Bắt đầu với JavaFX

Cài đặt JavaFX

Để bắt đầu làm việc với JavaFX, bạn cần tải và cài đặt SDK JavaFX từ trang web chính thức của OpenJFX. Sau khi tải xuống và giải nén, bạn cần cấu hình IDE (như IntelliJ IDEA hoặc Eclipse) để sử dụng thư viện JavaFX.

Tạo một ứng dụng JavaFX cơ bản

Một ứng dụng JavaFX cơ bản bao gồm ba phần chính: Stage, Scene, và các thành phần giao diện như Button, Label. Dưới đây là ví dụ minh họa:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Hello JavaFX");

        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(event -> System.out.println("Hello World!"));

        StackPane root = new StackPane();
        root.getChildren().add(btn);

        Scene scene = new Scene(root, 300, 250);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

Trong ví dụ trên, Stage là cửa sổ chính của ứng dụng, Scene là vùng chứa các thành phần giao diện, còn StackPane là một layout giúp sắp xếp các thành phần.

Các thành phần giao diện cơ bản

Label

Label là thành phần đơn giản để hiển thị văn bản:

Label label = new Label("Hello, JavaFX!");

Button

Button là nút bấm có thể gắn hành động khi người dùng nhấn:

Button button = new Button("Click me");
button.setOnAction(event -> System.out.println("Button clicked"));

TextField và TextArea

TextField là ô nhập văn bản một dòng, trong khi TextArea là ô nhập văn bản nhiều dòng:

TextField textField = new TextField();
TextArea textArea = new TextArea();

Các layout phổ biến

HBox và VBox

HBoxVBox lần lượt sắp xếp các thành phần theo hàng ngang và hàng dọc:

HBox hbox = new HBox();
hbox.getChildren().addAll(new Label("Name:"), new TextField());

VBox vbox = new VBox();
vbox.getChildren().addAll(new Label("Description:"), new TextArea());

GridPane

GridPane cho phép sắp xếp các thành phần thành các ô lưới:

GridPane gridPane = new GridPane();
gridPane.add(new Label("Name:"), 0, 0);
gridPane.add(new TextField(), 1, 0);
gridPane.add(new Label("Description:"), 0, 1);
gridPane.add(new TextArea(), 1, 1);

Tính năng nâng cao

CSS

JavaFX hỗ trợ CSS cho phép tùy chỉnh giao diện một cách linh hoạt:

.button {
    -fx-background-color: #ff0000;
    -fx-text-fill: #ffffff;
}

FXML

FXML giúp thiết kế giao diện bằng cách sử dụng XML, giúp tách biệt giữa mã giao diện và mã logic:

@FXML
private Button myButton;

@FXML
public void initialize() {
    myButton.setOnAction(event -> System.out.println("Button clicked"));
}

Trong file .fxml:

<Button fx:id="myButton" text="Click me" />

Kết luận

JavaFX cung cấp một công cụ mạnh mẽ và linh hoạt để phát triển các ứng dụng desktop bằng Java. Với các thành phần giao diện phong phú và khả năng tùy biến cao, JavaFX mở ra nhiều cơ hội cho lập trình viên tạo ra các ứng dụng hấp dẫn và chuyên nghiệp. Nếu bạn đang tìm kiếm một giải pháp để phát triển ứng dụng desktop với Java, JavaFX chắc chắn là một lựa chọn không thể bỏ qua.

Comments