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

JavaFXطريقة وضع أيقونات لعناصر الـTreeView

المثال التالي يعلمك طريقة وضع أيقونة للـ TreeView بالإضافة لجعله مفتوحاً بشكل إفتراضي عند تشغيل التطبيق.

ملاحظة: عليك إنشاء مجلد و وضع الصور فيه كما في الصورة التالية.

الصورة توضح أننا أضفنا مجلد إسمه images و وضعنا فيه أربع صور.

⇓ تحميل مجلد الصور


مثال

Main.java
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.TreeItem;
import javafx.scene.control.TreeView;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;
public class Main extends Application {
// و التي سنقصد بها الشركة Root Item الذي يمثل الـ TreeItem هنا قمنا بتعريف دالة ترجع الأيقونة التي سنضعها لكائن الـ
public ImageView getRootIcon() {
return new ImageView(new Image(getClass().getResourceAsStream("images/building-icon.png")));
}
// يمثل قسم في الشركة TreeItem هنا قمنا بتعريف دالة ترجع الأيقونة التي سنضعها لكل كائن
public ImageView getDepartmentIcon() {
return new ImageView(new Image(getClass().getResourceAsStream("images/department-icon.png")));
}
// يمثل موظف في الشركة TreeItem هنا قمنا بتعريف دالة ترجع الأيقونة التي سنضعها لكل كائن
public ImageView getUserMaleIcon() {
return new ImageView(new Image(getClass().getResourceAsStream("images/user-male-icon.png")));
}
// يمثل موظفة في الشركة TreeItem هنا قمنا بتعريف دالة ترجع الأيقونة التي سنضعها لكل كائن
public ImageView getUserFemaleIcon() {
return new ImageView(new Image(getClass().getResourceAsStream("images/user-female-icon.png")));
}
@Override
public void start(Stage stage) {
// getRootIcon() و مررنا له أيقونة المبنى التي سترجعها الدالة TreeView في الـ Root Item و الذي سنضعه كـ TreeItem هنا قمنا بإنشاء كائن من الكلاس
TreeItem<String> rootItem = new TreeItem<>("Harmash", getRootIcon());
// getDepartmentIcon() كل كائن منهم سنجعله يمثل إسم قسم في الشركة و بجانبه أيقونة القسم التي ترجعها الدالة .TreeView هنا قمنا بإنشاء 3 كائنات
TreeItem dep_1 = new TreeItem("Research & Development", getDepartmentIcon());
TreeItem dep_2 = new TreeItem("Accounting & Finance", getDepartmentIcon());
TreeItem dep_3 = new TreeItem("Marketing", getDepartmentIcon());
// كل كائن منهم سنجعله يمثل إسم موظف/موظفة في الشركة و TreeView هنا قمنا بإنشاء 6 كائنات
// getUserFemaleIcon() و الدالة getUserMaleIcon() بجانبه أيقونة تمثل جنسه و التي ترجعها
TreeItem user_1 = new TreeItem("Mhamad Harmush", getUserMaleIcon());
TreeItem user_2 = new TreeItem("Youssef Jabber", getUserMaleIcon());
TreeItem user_3 = new TreeItem("Hala Hassan", getUserFemaleIcon());
TreeItem user_4 = new TreeItem("Rola Masri", getUserFemaleIcon());
TreeItem user_5 = new TreeItem("Rim Ibrahim", getUserFemaleIcon());
TreeItem user_6 = new TreeItem("Nader Bakir", getUserMaleIcon());
// يظهر عند تشغيل البرنامج ( dep_3 و dep_2 و dep_1 أي الكائنات) rootItem موضوع مباشرةً تحت الـ TreeItem هنا جعلنا كل كائن
rootItem.setExpanded(true);
// كأول عنصر فيها rootItem يمثل القائمة الشجرية التي نريد إضافتها في النافذة و وضعنا فيها الكائن TreeView هنا قمنا بإنشاء كائن من الكلاس
TreeView<String> treeView = new TreeView<>(rootItem);
// الذي يمثل الشركة rootItem التي تمثل أقسام في الشركة تحت الكائن TreeItem هنا قمنا بإضافة كائنات الـ
rootItem.getChildren().add(dep_1);
rootItem.getChildren().add(dep_2);
rootItem.getChildren().add(dep_3);
// التي تمثل أقسام في الشركة TreeItem التي تمثل موظفين و موظفات تحت كائنات الـ TreeItem هنا قمنا بإضافة كائنات الـ
dep_1.getChildren().add(user_1);
dep_1.getChildren().add(user_2);
dep_1.getChildren().add(user_3);
dep_2.getChildren().add(user_4);
dep_2.getChildren().add(user_5);
dep_3.getChildren().add(user_6);
// في النافذة treeView هنا قمنا بتحديد حجم الـ
treeView.setPrefSize(400, 250);
// في النافذة treeView هنا قمنا بتحديد مكان ظهور الكائن
treeView.setTranslateX(0);
treeView.setTranslateY(0);
// في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس
Group root = new Group();
// root في الكائن treeView هنا قمنا بإضافة الكائن
root.getChildren().add(treeView);
// فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
Scene scene = new Scene(root, 400, 250);
// هنا وضعنا عنوان للنافذة
stage.setTitle("JavaFX TreeView");
// أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
stage.setScene(scene);
// هنا قمنا بإظهار النافذة
stage.show();
}
// هنا قمنا بتشغيل التطبيق
public static void main(String[] args) {
launch(args);
}
}
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.TreeItem; import javafx.scene.control.TreeView; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.stage.Stage; public class Main extends Application { // و التي سنقصد بها الشركة Root Item الذي يمثل الـ TreeItem هنا قمنا بتعريف دالة ترجع الأيقونة التي سنضعها لكائن الـ public ImageView getRootIcon() { return new ImageView(new Image(getClass().getResourceAsStream("images/building-icon.png"))); } // يمثل قسم في الشركة TreeItem هنا قمنا بتعريف دالة ترجع الأيقونة التي سنضعها لكل كائن public ImageView getDepartmentIcon() { return new ImageView(new Image(getClass().getResourceAsStream("images/department-icon.png"))); } // يمثل موظف في الشركة TreeItem هنا قمنا بتعريف دالة ترجع الأيقونة التي سنضعها لكل كائن public ImageView getUserMaleIcon() { return new ImageView(new Image(getClass().getResourceAsStream("images/user-male-icon.png"))); } // يمثل موظفة في الشركة TreeItem هنا قمنا بتعريف دالة ترجع الأيقونة التي سنضعها لكل كائن public ImageView getUserFemaleIcon() { return new ImageView(new Image(getClass().getResourceAsStream("images/user-female-icon.png"))); } @Override public void start(Stage stage) { // getRootIcon() و مررنا له أيقونة المبنى التي سترجعها الدالة TreeView في الـ Root Item و الذي سنضعه كـ TreeItem هنا قمنا بإنشاء كائن من الكلاس TreeItem<String> rootItem = new TreeItem<>("Harmash", getRootIcon()); // getDepartmentIcon() كل كائن منهم سنجعله يمثل إسم قسم في الشركة و بجانبه أيقونة القسم التي ترجعها الدالة .TreeView هنا قمنا بإنشاء 3 كائنات TreeItem dep_1 = new TreeItem("Research & Development", getDepartmentIcon()); TreeItem dep_2 = new TreeItem("Accounting & Finance", getDepartmentIcon()); TreeItem dep_3 = new TreeItem("Marketing", getDepartmentIcon()); // كل كائن منهم سنجعله يمثل إسم موظف/موظفة في الشركة و TreeView هنا قمنا بإنشاء 6 كائنات // getUserFemaleIcon() و الدالة getUserMaleIcon() بجانبه أيقونة تمثل جنسه و التي ترجعها TreeItem user_1 = new TreeItem("Mhamad Harmush", getUserMaleIcon()); TreeItem user_2 = new TreeItem("Youssef Jabber", getUserMaleIcon()); TreeItem user_3 = new TreeItem("Hala Hassan", getUserFemaleIcon()); TreeItem user_4 = new TreeItem("Rola Masri", getUserFemaleIcon()); TreeItem user_5 = new TreeItem("Rim Ibrahim", getUserFemaleIcon()); TreeItem user_6 = new TreeItem("Nader Bakir", getUserMaleIcon()); // يظهر عند تشغيل البرنامج ( dep_3 و dep_2 و dep_1 أي الكائنات) rootItem موضوع مباشرةً تحت الـ TreeItem هنا جعلنا كل كائن rootItem.setExpanded(true); // كأول عنصر فيها rootItem يمثل القائمة الشجرية التي نريد إضافتها في النافذة و وضعنا فيها الكائن TreeView هنا قمنا بإنشاء كائن من الكلاس TreeView<String> treeView = new TreeView<>(rootItem); // الذي يمثل الشركة rootItem التي تمثل أقسام في الشركة تحت الكائن TreeItem هنا قمنا بإضافة كائنات الـ rootItem.getChildren().add(dep_1); rootItem.getChildren().add(dep_2); rootItem.getChildren().add(dep_3); // التي تمثل أقسام في الشركة TreeItem التي تمثل موظفين و موظفات تحت كائنات الـ TreeItem هنا قمنا بإضافة كائنات الـ dep_1.getChildren().add(user_1); dep_1.getChildren().add(user_2); dep_1.getChildren().add(user_3); dep_2.getChildren().add(user_4); dep_2.getChildren().add(user_5); dep_3.getChildren().add(user_6); // في النافذة treeView هنا قمنا بتحديد حجم الـ treeView.setPrefSize(400, 250); // في النافذة treeView هنا قمنا بتحديد مكان ظهور الكائن treeView.setTranslateX(0); treeView.setTranslateY(0); // في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس Group root = new Group(); // root في الكائن treeView هنا قمنا بإضافة الكائن root.getChildren().add(treeView); // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن Scene scene = new Scene(root, 400, 250); // هنا وضعنا عنوان للنافذة stage.setTitle("JavaFX TreeView"); // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ stage.setScene(scene); // هنا قمنا بإظهار النافذة stage.show(); } // هنا قمنا بتشغيل التطبيق public static void main(String[] args) { launch(args); } }

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

طريقة وضع أيقونات لعناصر الـ TreeView في javafx