import javafx.application.Application;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.control.SelectionMode;
import javafx.stage.Stage;
public class Main extends Application {
public void start(Stage stage) {
// هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في النافذة
Label totalSelected = new Label("Total selected: 0");
Label selectedItems = new Label("Selected colors:");
ListView<String> listView = new ListView<>();
// يمثل مجموعة العناصر التي ستظهر في القائمة ObservableList هنا قمنا بإنشاء كائن من الكلاس
ObservableList<String> items = FXCollections.observableArrayList(
"red", "blue", "green", "yellow", "orange", "brown", "pink", "purple", "gray", "black", "white"
// listView كعناصر للكائن items هنا قمنا بوضع عناصر الكائن
listView.setItems(items);
// listView هنا جعلنا المستخدم قادر على إختيار أكثر من قيمة في الـ
listView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
// هنا قمنا بتحديد حجم الأشياء التي سنضيفها في النافذة
listView.setPrefSize(120, 250);
totalSelected.setPrefSize(250, 30);
selectedItems.setPrefSize(250, 30);
// هنا قمنا بتحديد مكان ظهور الأشياء التي سنضيفها في النافذة
totalSelected.setTranslateX(150);
totalSelected.setTranslateY(90);
selectedItems.setTranslateX(150);
selectedItems.setTranslateY(120);
listView.setTranslateX(0);
listView.setTranslateY(0);
// في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس
Group root = new Group();
// root هنا قمنا بإضافة جميع الأشياء في الكائن
root.getChildren().add(totalSelected);
root.getChildren().add(selectedItems);
root.getChildren().add(listView);
// فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
Scene scene = new Scene(root, 400, 250);
// هنا وضعنا عنوان للنافذة
stage.setTitle("JavaFX ListView");
// أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
// هنا قمنا بإظهار النافذة
// listView هنا قمنا بتحديد ماذا سيحدث عند النقر على أي عنصر موجود في الـ
listView.getSelectionModel().selectedItemProperty().addListener(
(ObservableValue<? extends String> ov, String old_val, String new_val) -> {
// label هنا قلناأنه سيتم وضع إسم العنصر الذي تم إختياره كنص للكائن
totalSelected.setText("Total selected: " + listView.getSelectionModel().getSelectedItems().size());
selectedItems.setText("Selected colors: " + listView.getSelectionModel().getSelectedItems());
// هنا قمنا بتشغيل التطبيق
public static void main(String[] args) {
import javafx.application.Application;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.control.SelectionMode;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage stage) {
// هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في النافذة
Label totalSelected = new Label("Total selected: 0");
Label selectedItems = new Label("Selected colors:");
ListView<String> listView = new ListView<>();
// يمثل مجموعة العناصر التي ستظهر في القائمة ObservableList هنا قمنا بإنشاء كائن من الكلاس
ObservableList<String> items = FXCollections.observableArrayList(
"red", "blue", "green", "yellow", "orange", "brown", "pink", "purple", "gray", "black", "white"
);
// listView كعناصر للكائن items هنا قمنا بوضع عناصر الكائن
listView.setItems(items);
// listView هنا جعلنا المستخدم قادر على إختيار أكثر من قيمة في الـ
listView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
// هنا قمنا بتحديد حجم الأشياء التي سنضيفها في النافذة
listView.setPrefSize(120, 250);
totalSelected.setPrefSize(250, 30);
selectedItems.setPrefSize(250, 30);
// هنا قمنا بتحديد مكان ظهور الأشياء التي سنضيفها في النافذة
totalSelected.setTranslateX(150);
totalSelected.setTranslateY(90);
selectedItems.setTranslateX(150);
selectedItems.setTranslateY(120);
listView.setTranslateX(0);
listView.setTranslateY(0);
// في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس
Group root = new Group();
// root هنا قمنا بإضافة جميع الأشياء في الكائن
root.getChildren().add(totalSelected);
root.getChildren().add(selectedItems);
root.getChildren().add(listView);
// فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
Scene scene = new Scene(root, 400, 250);
// هنا وضعنا عنوان للنافذة
stage.setTitle("JavaFX ListView");
// أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
stage.setScene(scene);
// هنا قمنا بإظهار النافذة
stage.show();
// listView هنا قمنا بتحديد ماذا سيحدث عند النقر على أي عنصر موجود في الـ
listView.getSelectionModel().selectedItemProperty().addListener(
(ObservableValue<? extends String> ov, String old_val, String new_val) -> {
// label هنا قلناأنه سيتم وضع إسم العنصر الذي تم إختياره كنص للكائن
totalSelected.setText("Total selected: " + listView.getSelectionModel().getSelectedItems().size());
selectedItems.setText("Selected colors: " + listView.getSelectionModel().getSelectedItems());
});
}
// هنا قمنا بتشغيل التطبيق
public static void main(String[] args) {
launch(args);
}
}