تخطَّ إلى المحتوى

شرح Java

أساسيات JavaFX

الدرس 34 من 42· ⏱ 2 دقائق قراءة

ما هي JavaFX؟

JavaFX هي مكتبة بناء تطبيقات سطح المكتب الرسومية — بديل Swing الحديثة. توفر واجهات أنيقة بـ CSS و FXML ورسوم متحركة.

المثال الأبسط

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

public class HelloApp extends Application {
    @Override
    public void start(Stage stage) {
        Label label = new Label("مرحبًا من JavaFX!");
        StackPane pane = new StackPane(label);
        Scene scene = new Scene(pane, 400, 300);
        stage.setScene(scene);
        stage.setTitle("أول تطبيق");
        stage.show();
    }

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

المفاهيم الأساسية

المفهومالوظيفة
Stageالنافذة الرئيسية
Sceneالمحتوى داخل النافذة
Paneحاوية ترتيب العناصر
Nodeأي عنصر في المشهد (زر، نص، صورة)

أنواع الحاويات (Layouts)

StackPane (كدس)

StackPane pane = new StackPane();
pane.getChildren().addAll(label, button);

VBox (عمودي)

import javafx.scene.layout.VBox;
VBox vbox = new VBox(10); // مسافة 10px
vbox.getChildren().addAll(label, button, textField);

HBox (أفقي)

import javafx.scene.layout.HBox;
HBox hbox = new HBox(15);
hbox.getChildren().addAll(button1, button2);

BorderPane (أرباع)

import javafx.scene.layout.BorderPane;
BorderPane root = new BorderPane();
root.setTop(menuBar);
root.setCenter(tableView);
root.setLeft(sidePanel);
root.setBottom(statusBar);

GridPane (شبكة)

import javafx.scene.layout.GridPane;
GridPane grid = new GridPane();
grid.setHgap(10);
grid.setVgap(10);
grid.add(label1, 0, 0);  // عمود 0، صف 0
grid.add(field1, 1, 0);  // عمود 1، صف 0
grid.add(button, 0, 2, 2, 1); // يمتد عمودين

عناصر شائعة

import javafx.scene.control.*;

Label label = new Label("نص");
Button btn = new Button("اضغط");
TextField field = new TextField();
CheckBox check = new CheckBox("تفعيل");
RadioButton radio = new RadioButton("اختيار");
ComboBox<String> combo = new ComboBox<>();
combo.getItems().addAll("أ", "ب", "ج");

التنسيق بـ CSS

label.setStyle("-fx-font-size: 20px; -fx-text-fill: blue;");
button.setStyle("-fx-background-color: green; -fx-text-fill: white;");

التشغيل

javac --module-path /path/to/javafx/lib --add-modules javafx.controls HelloApp.java
java --module-path /path/to/javafx/lib --add-modules javafx.controls HelloApp

💡 JavaFX ليست جزءًا من JDK منذ Java 11 — يجب تحميلها وإضافتها يدويًا.

🎯 التالي: البرمجة التفاعلية والرسوم المتحركة.

شرح أساسيات JavaFX — Java بالعربي
أساسيات JavaFXJava بالعربي · The Code Fix

📚 لمزيد من التعمّق في Java، راجِع توثيق Java من Oracle.

هل كان هذا الدرس مفيدًا؟