JavaFXطريقة وضع أيقونة للـMenuItem
المثال التالي يعلمك طريقة وضع أيقونات لعناصر القائمة. أي ستتعلم كيف تضع أيقونة للـ MenuItem.
ملاحظة: عليك إنشاء مجلد و وضع الصور فيه كما في الصورة التالية.
الصورة توضح أننا أضفنا مجلد إسمه images و وضعنا فيه أربع صور.
مثال
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.control.SeparatorMenuItem;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;
public class Main extends Application {
// يمثل شريط القوائم الذي سنضعه في أعلا النافذة MenuBar هنا قمنا بإنشاء كائن من الكلاس
MenuBar menuBar = new MenuBar();
// هنا قمنا بإنشاء القائمة الرئيسية التي سنضعها في شريط القوائم
Menu menu = new Menu("Menu");
// تمثل العناصر التي سنضعها في القوائم مع وضع صورة مختلفة لكل عنصر MenuItem هنا قمنا بإنشاء 4 كائنات من الكلاس
MenuItem itemNewFile = new MenuItem("New", new ImageView(new Image("/images/new-icon.png")));
MenuItem itemOpen = new MenuItem("Open", new ImageView(new Image("/images/open-icon.png")));
MenuItem itemSave = new MenuItem("Save", new ImageView(new Image("/images/save-icon.png")));
MenuItem itemExit = new MenuItem("Exit", new ImageView(new Image("/images/exit-icon.png")));
@Override
public void start(Stage stage) {
// هنا قمنا بوضع القائمة في شريط القوائم
menuBar.getMenus().addAll(menu);
// menu في القائمة itemExit و itemSave ,ItemOpen ,itemNewFile هنا قمنا بوضع العناصر
menu.getItems().add(itemNewFile);
menu.getItems().add(itemOpen);
menu.getItems().add(itemSave);
menu.getItems().add(new SeparatorMenuItem()); // هنا أضفنا خط فاصل
menu.getItems().add(itemExit);
// هنا قمنا بجعل عرض شريط القوائم يساوي عرض النافذة حتى يظهر مطابق لها
menuBar.setPrefWidth(400);
// في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس
Group root = new Group();
// root في الكائن menuBar هنا قمنا بإضافة الكائن
root.getChildren().add(menuBar);
// فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
Scene scene = new Scene(root, 400, 250);
// هنا وضعنا عنوان للنافذة
stage.setTitle("JavaFX MenuBar");
// أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .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.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.control.SeparatorMenuItem;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;
public class Main extends Application {
// يمثل شريط القوائم الذي سنضعه في أعلا النافذة MenuBar هنا قمنا بإنشاء كائن من الكلاس
MenuBar menuBar = new MenuBar();
// هنا قمنا بإنشاء القائمة الرئيسية التي سنضعها في شريط القوائم
Menu menu = new Menu("Menu");
// تمثل العناصر التي سنضعها في القوائم مع وضع صورة مختلفة لكل عنصر MenuItem هنا قمنا بإنشاء 4 كائنات من الكلاس
MenuItem itemNewFile = new MenuItem("New", new ImageView(new Image("/images/new-icon.png")));
MenuItem itemOpen = new MenuItem("Open", new ImageView(new Image("/images/open-icon.png")));
MenuItem itemSave = new MenuItem("Save", new ImageView(new Image("/images/save-icon.png")));
MenuItem itemExit = new MenuItem("Exit", new ImageView(new Image("/images/exit-icon.png")));
@Override
public void start(Stage stage) {
// هنا قمنا بوضع القائمة في شريط القوائم
menuBar.getMenus().addAll(menu);
// menu في القائمة itemExit و itemSave ,ItemOpen ,itemNewFile هنا قمنا بوضع العناصر
menu.getItems().add(itemNewFile);
menu.getItems().add(itemOpen);
menu.getItems().add(itemSave);
menu.getItems().add(new SeparatorMenuItem()); // هنا أضفنا خط فاصل
menu.getItems().add(itemExit);
// هنا قمنا بجعل عرض شريط القوائم يساوي عرض النافذة حتى يظهر مطابق لها
menuBar.setPrefWidth(400);
// في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس
Group root = new Group();
// root في الكائن menuBar هنا قمنا بإضافة الكائن
root.getChildren().add(menuBar);
// فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
Scene scene = new Scene(root, 400, 250);
// هنا وضعنا عنوان للنافذة
stage.setTitle("JavaFX MenuBar");
// أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
stage.setScene(scene);
// هنا قمنا بإظهار النافذة
stage.show();
}
// هنا قمنا بتشغيل التطبيق
public static void main(String[] args) {
launch(args);
}
}
ستظهر لك النافذة التالية عند التشغيل.