package GUIAnwendungen.MenuBar;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class MenuItem {

    public static void main(String[] args) {
 
        JFrame frame = new JFrame("JMenuBar demo");              // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس
        frame.setSize(500, 250);                                 // هنا قمنا بتحديد حجم النافذة. عرضها 500 و طولها 250
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
 
        // هنا قمنا بتعريف شريط القوائم
        JMenuBar menuBar = new JMenuBar();
 
        // هنا قمنا بتعريف 3 قوائم
        JMenu file = new JMenu("File");
        JMenu edit = new JMenu("Edit");
        JMenu help = new JMenu("Help");
 
        // هنا قمنا بتعريف 11 عنصر
        JMenuItem newFile = new JMenuItem("New");
        JMenuItem open = new JMenuItem("Open");
        JMenuItem save = new JMenuItem("Save");
        JMenuItem exit = new JMenuItem("Exit");
        JMenuItem undo = new JMenuItem("Undo");
        JMenuItem cut = new JMenuItem("Cut");
        JMenuItem copy = new JMenuItem("Copy");
        JMenuItem paste = new JMenuItem("Paste");
        JMenuItem select = new JMenuItem("Select All");
        JMenuItem about = new JMenuItem("About");
        JMenuItem report = new JMenuItem("Report Issue");
 
        // هنا قمنا بوضع القوائم الثلاثة في شريط القوائم
        menuBar.add(file);
        menuBar.add(edit);
        menuBar.add(help);
 
        // file في القائمة exit و save ,open ,newFile هنا قمنا بوضع العناصر
        file.add(newFile);
        file.add(open);
        file.add(save);
        file.addSeparator(); // هنا أضفنا خط فاصل
        file.add(exit);
 
        // edit في القائمة select و paste ,copy ,cut ,undo هنا قمنا بوضع العناصر
        edit.add(undo);
        edit.addSeparator(); // هنا أضفنا خط فاصل
        edit.add(cut);
        edit.add(copy);
        edit.add(paste);
        edit.addSeparator(); // هنا أضفنا خط فاصل
        edit.add(select);
 
        // help في القائمة report و about هنا قمنا بوضع العناصر
        help.add(about);
        help.add(report);
 
        // frame هنا قمنا بوضع شريط القوائم في الـ
        frame.setJMenuBar(menuBar);
 
        // مرئية frame هنا جعلنا الـ
        frame.setVisible(true);
 
        // هنا نضع الأوامر التي ستنفذ عند النقر على كل عنصر موجود في القائمة
        ActionListener al = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if( e.getSource() == newFile )
                {
                    // newFile هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
                }
                else if( e.getSource() == open )
                {
                    // open هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
                }
                else if( e.getSource() == save )
                {
                    // save هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
                }
                else if( e.getSource() == exit )
                {
                    // exit هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
                }
                else if( e.getSource() == undo )
                {
                    // undo هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
                }
                else if( e.getSource() == copy )
                {
                    // copy هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
                }
                else if( e.getSource() == cut )
                {
                    // cut هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
                }
                else if( e.getSource() == paste )
                {
                    // paste هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
                }
                else if( e.getSource() == select )
                {
                    // select هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
                }
                else if( e.getSource() == about )
                {
                    // about هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
                }
                else if( e.getSource() == report )
                {
                    // report هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
                }
 
            }
        };
 
        // al هنا ربطنا جميع العناصر بالكائن
        newFile.addActionListener(al);
        open.addActionListener(al);
        save.addActionListener(al);
        exit.addActionListener(al);
        undo.addActionListener(al);
        cut.addActionListener(al);
        copy.addActionListener(al);
        paste.addActionListener(al);
        select.addActionListener(al);
        about.addActionListener(al);
        report.addActionListener(al);
 
    }
}
