Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

JavaFXطريقة عرض قيمة الـSlider كلما قام المستخدم بتغييرها

المثال التالي يعلمك طريقة تنفيذ أوامر في كل مرة يتم فيها تغيير قيمة الـ Slider.
في كل مرة يقوم فيها المستخدم بتغيير قيمة الـ Slider سيتم عرضها بداخل TextField.


مثال

Main.java
import javafx.application.Application;
import javafx.beans.value.ObservableValue;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.Slider;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage stage) {
// هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في النافذة
Label label = new Label("Selected Value");
TextField textField = new TextField("0");
Slider slider = new Slider();
// slider هنا قمنا بتحديد خصائص الكائن
slider.setMin(0); // slider هنا قمنا بتحديد أصغر قيمة في الكائن
slider.setMax(100); // slider هنا قمنا بتحديد أكبر قيمة في الكائن
slider.setValue(0); // slider هنا قمنا بتحديد القيمة التي ستظهر مختارة بشكل إفتراضي في الكائن
slider.setShowTickLabels(true); // slider في الكائن Tick هنا قمنا بإظهار قيمة كل
slider.setShowTickMarks(true); // slider في الكائن Tick هنا قمنا بإظهار كل
slider.setMajorTickUnit(20); // (Major Tick) سيتم إظهار خط كبير slider هنا حددنا أنه بعد كل 20 وحدة في الكائن
slider.setMinorTickCount(5); // (Minor Tick) سيتم إظهار خط صغير slider هنا حددنا أنه بعد كل 5 وحدات في الكائن
slider.setBlockIncrement(10); // من الأسهم الموجودة في لوحة المفاتيح سيتم زيادة أو إنقاص 10 في كل نقرة slider هنا حددنا أنه في حال قام المستخدم بتغيير قيمة الكائن
// غير قابلة للتعديل بشكل مباشر textField هنا جعلنا قيمة الكائن
textField.setEditable(false);
// هنا قمنا بتحديد حجم الأشياء التي سنضيفها في النافذة
slider.setPrefSize(200, 40);
label.setPrefSize(100, 20);
textField.setPrefSize(40, 20);
// هنا قمنا بتحديد مكان ظهور الأشياء التي سنضيفها في النافذة
slider.setTranslateX(100);
slider.setTranslateY(90);
label.setTranslateX(140);
label.setTranslateY(170);
textField.setTranslateX(240);
textField.setTranslateY(170);
// في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس
Group root = new Group();
// root هنا قمنا بإضافة جميع الأشياء في الكائن
root.getChildren().add(slider);
root.getChildren().add(label);
root.getChildren().add(textField);
// فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
Scene scene = new Scene(root, 400, 250);
// هنا وضعنا عنوان للنافذة
stage.setTitle("JavaFX Slider");
// أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
stage.setScene(scene);
// هنا قمنا بإظهار النافذة
stage.show();
// slider هنا قمنا بتحديد ما سيحدث عند تغيير قيمة الكائن
slider.valueProperty().addListener(
(ObservableValue<? extends Number> ov, Number old_val, Number new_val) -> {
// textField ثم سيتم وضعها كنص للكائن int لقيمة نوعها slider سيتم تحويل قيمة الكائن
textField.setText(""+new_val.intValue());
}
);
}
// هنا قمنا بتشغيل التطبيق
public static void main(String[] args) {
launch(args);
}
}
import javafx.application.Application; import javafx.beans.value.ObservableValue; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.control.Slider; import javafx.scene.control.TextField; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage stage) { // هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في النافذة Label label = new Label("Selected Value"); TextField textField = new TextField("0"); Slider slider = new Slider(); // slider هنا قمنا بتحديد خصائص الكائن slider.setMin(0); // slider هنا قمنا بتحديد أصغر قيمة في الكائن slider.setMax(100); // slider هنا قمنا بتحديد أكبر قيمة في الكائن slider.setValue(0); // slider هنا قمنا بتحديد القيمة التي ستظهر مختارة بشكل إفتراضي في الكائن slider.setShowTickLabels(true); // slider في الكائن Tick هنا قمنا بإظهار قيمة كل slider.setShowTickMarks(true); // slider في الكائن Tick هنا قمنا بإظهار كل slider.setMajorTickUnit(20); // (Major Tick) سيتم إظهار خط كبير slider هنا حددنا أنه بعد كل 20 وحدة في الكائن slider.setMinorTickCount(5); // (Minor Tick) سيتم إظهار خط صغير slider هنا حددنا أنه بعد كل 5 وحدات في الكائن slider.setBlockIncrement(10); // من الأسهم الموجودة في لوحة المفاتيح سيتم زيادة أو إنقاص 10 في كل نقرة slider هنا حددنا أنه في حال قام المستخدم بتغيير قيمة الكائن // غير قابلة للتعديل بشكل مباشر textField هنا جعلنا قيمة الكائن textField.setEditable(false); // هنا قمنا بتحديد حجم الأشياء التي سنضيفها في النافذة slider.setPrefSize(200, 40); label.setPrefSize(100, 20); textField.setPrefSize(40, 20); // هنا قمنا بتحديد مكان ظهور الأشياء التي سنضيفها في النافذة slider.setTranslateX(100); slider.setTranslateY(90); label.setTranslateX(140); label.setTranslateY(170); textField.setTranslateX(240); textField.setTranslateY(170); // في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس Group root = new Group(); // root هنا قمنا بإضافة جميع الأشياء في الكائن root.getChildren().add(slider); root.getChildren().add(label); root.getChildren().add(textField); // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن Scene scene = new Scene(root, 400, 250); // هنا وضعنا عنوان للنافذة stage.setTitle("JavaFX Slider"); // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ stage.setScene(scene); // هنا قمنا بإظهار النافذة stage.show(); // slider هنا قمنا بتحديد ما سيحدث عند تغيير قيمة الكائن slider.valueProperty().addListener( (ObservableValue<? extends Number> ov, Number old_val, Number new_val) -> { // textField ثم سيتم وضعها كنص للكائن int لقيمة نوعها slider سيتم تحويل قيمة الكائن textField.setText(""+new_val.intValue()); } ); } // هنا قمنا بتشغيل التطبيق public static void main(String[] args) { launch(args); } }

ستظهر لك النافذة التالية عند التشغيل.

طريقة تنفيذ أوامر في كل مرة يتم فيها تغيير قيمة الـ Slider في javafx