import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.chart.AreaChart;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart.Data;
import javafx.scene.chart.XYChart.Series;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class Main extends Application {
public void start(Stage stage) {
// يمثل مدى الأرقام التي سيتم عرضها على الخط الأفقي في الرسم البياني NumberAxis هنا قمنا بإنشاء كائن من الكلاس
NumberAxis xAxis = new NumberAxis(1, 31, 1);
// يمثل مدى الأرقام التي سيتم عرضها على الخط العامودي في الرسم البياني NumberAxis هنا قمنا بإنشاء كائن من الكلاس
NumberAxis yAxis = new NumberAxis(-10, 35, 5);
// يمثل الرسم البياني الذي نريد إضافته في النافذة AreaChart هنا قمنا بإنشاء كائن من الكلاس
// yAxis و xAxis الأرقام التي ستظهر عليه عامودياً و أفقياً سيتم تحديدها بناءاً على قيم الكائنين
AreaChart areaChart = new AreaChart(xAxis, yAxis);
// أي وضعنا عنوان للرسم البياني .areaChart هنا وضعنا عنوان للكائن
areaChart.setTitle("Temperature Monitoring (in Degrees C)");
// هنا جعلنا الدوائر التي كانت تظهر على الخطوط تختفي
areaChart.setCreateSymbols(false);
// areaChart يمثل الخط الأول الذي سيتم رسمه على الكائن Series هنا قمنا بإنشاء كائن من الكلاس
Series marchSeries = new Series();
marchSeries.setName("March");
marchSeries.getData().add(new Data(1, 12));
marchSeries.getData().add(new Data(5, 16));
marchSeries.getData().add(new Data(10, 18));
marchSeries.getData().add(new Data(15, 26));
marchSeries.getData().add(new Data(20, 30));
marchSeries.getData().add(new Data(25, 24));
marchSeries.getData().add(new Data(30, 19));
marchSeries.getData().add(new Data(31, 18));
// areaChart يمثل الخط الثاني الذي سيتم رسمه على الكائن Series هنا قمنا بإنشاء كائن من الكلاس
Series aprilSeries = new Series();
aprilSeries.setName("April");
aprilSeries.getData().add(new Data(1, 18));
aprilSeries.getData().add(new Data(5, 22));
aprilSeries.getData().add(new Data(10, 28));
aprilSeries.getData().add(new Data(15, 24));
aprilSeries.getData().add(new Data(20, 26));
aprilSeries.getData().add(new Data(25, 32));
aprilSeries.getData().add(new Data(30, 31));
// areaChart يمثل الخط الثاني الذي سيتم رسمه على الكائن Series هنا قمنا بإنشاء كائن من الكلاس
Series februarySeiries = new Series();
februarySeiries.setName("February");
februarySeiries.getData().add(new Data(1, -4));
februarySeiries.getData().add(new Data(5, -2));
februarySeiries.getData().add(new Data(10, -9));
februarySeiries.getData().add(new Data(15, -2));
februarySeiries.getData().add(new Data(20, 8));
februarySeiries.getData().add(new Data(25, 18));
februarySeiries.getData().add(new Data(28, 14));
// حتى يظهرا على الرسم البياني areaChart على الكائن aprilSeries و marchSeries و February هنا قمنا بإضافة الكائنات
areaChart.getData().add(februarySeiries);
areaChart.getData().add(marchSeries);
areaChart.getData().add(aprilSeries);
// في النافذة Root Node لأننا ننوي جعله الـ StackPane هنا قمنا بإنشاء كائن من الكلاس
StackPane root = new StackPane();
// حتى يتم إبعاد الرسم البياني قليلاً عن أطراف النافذة root هنا قمنا بإضافة هامش بمقدار 10 بيكسل على كل جوانب الكائن
root.setPadding(new Insets(10));
// root في الكائن areaChart هنا قمنا بإضافة الكائن
root.getChildren().addAll(areaChart);
// فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
Scene scene = new Scene(root, 600, 340);
// هنا وضعنا عنوان للنافذة
stage.setTitle("JavaFX AreaChart");
// أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
// هنا قمنا بإظهار النافذة
// هنا قمنا بتشغيل التطبيق
public static void main(String[] args) {
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.chart.AreaChart;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart.Data;
import javafx.scene.chart.XYChart.Series;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage stage) {
// يمثل مدى الأرقام التي سيتم عرضها على الخط الأفقي في الرسم البياني NumberAxis هنا قمنا بإنشاء كائن من الكلاس
NumberAxis xAxis = new NumberAxis(1, 31, 1);
// يمثل مدى الأرقام التي سيتم عرضها على الخط العامودي في الرسم البياني NumberAxis هنا قمنا بإنشاء كائن من الكلاس
NumberAxis yAxis = new NumberAxis(-10, 35, 5);
// يمثل الرسم البياني الذي نريد إضافته في النافذة AreaChart هنا قمنا بإنشاء كائن من الكلاس
// yAxis و xAxis الأرقام التي ستظهر عليه عامودياً و أفقياً سيتم تحديدها بناءاً على قيم الكائنين
AreaChart areaChart = new AreaChart(xAxis, yAxis);
// أي وضعنا عنوان للرسم البياني .areaChart هنا وضعنا عنوان للكائن
areaChart.setTitle("Temperature Monitoring (in Degrees C)");
// هنا جعلنا الدوائر التي كانت تظهر على الخطوط تختفي
areaChart.setCreateSymbols(false);
// areaChart يمثل الخط الأول الذي سيتم رسمه على الكائن Series هنا قمنا بإنشاء كائن من الكلاس
Series marchSeries = new Series();
marchSeries.setName("March");
marchSeries.getData().add(new Data(1, 12));
marchSeries.getData().add(new Data(5, 16));
marchSeries.getData().add(new Data(10, 18));
marchSeries.getData().add(new Data(15, 26));
marchSeries.getData().add(new Data(20, 30));
marchSeries.getData().add(new Data(25, 24));
marchSeries.getData().add(new Data(30, 19));
marchSeries.getData().add(new Data(31, 18));
// areaChart يمثل الخط الثاني الذي سيتم رسمه على الكائن Series هنا قمنا بإنشاء كائن من الكلاس
Series aprilSeries = new Series();
aprilSeries.setName("April");
aprilSeries.getData().add(new Data(1, 18));
aprilSeries.getData().add(new Data(5, 22));
aprilSeries.getData().add(new Data(10, 28));
aprilSeries.getData().add(new Data(15, 24));
aprilSeries.getData().add(new Data(20, 26));
aprilSeries.getData().add(new Data(25, 32));
aprilSeries.getData().add(new Data(30, 31));
// areaChart يمثل الخط الثاني الذي سيتم رسمه على الكائن Series هنا قمنا بإنشاء كائن من الكلاس
Series februarySeiries = new Series();
februarySeiries.setName("February");
februarySeiries.getData().add(new Data(1, -4));
februarySeiries.getData().add(new Data(5, -2));
februarySeiries.getData().add(new Data(10, -9));
februarySeiries.getData().add(new Data(15, -2));
februarySeiries.getData().add(new Data(20, 8));
februarySeiries.getData().add(new Data(25, 18));
februarySeiries.getData().add(new Data(28, 14));
// حتى يظهرا على الرسم البياني areaChart على الكائن aprilSeries و marchSeries و February هنا قمنا بإضافة الكائنات
areaChart.getData().add(februarySeiries);
areaChart.getData().add(marchSeries);
areaChart.getData().add(aprilSeries);
// في النافذة Root Node لأننا ننوي جعله الـ StackPane هنا قمنا بإنشاء كائن من الكلاس
StackPane root = new StackPane();
// حتى يتم إبعاد الرسم البياني قليلاً عن أطراف النافذة root هنا قمنا بإضافة هامش بمقدار 10 بيكسل على كل جوانب الكائن
root.setPadding(new Insets(10));
// root في الكائن areaChart هنا قمنا بإضافة الكائن
root.getChildren().addAll(areaChart);
// فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
Scene scene = new Scene(root, 600, 340);
// هنا وضعنا عنوان للنافذة
stage.setTitle("JavaFX AreaChart");
// أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
stage.setScene(scene);
// هنا قمنا بإظهار النافذة
stage.show();
}
// هنا قمنا بتشغيل التطبيق
public static void main(String[] args) {
launch(args);
}
}