menusearch
javapro.ir

♨️ جلسه دوازدهم - ساخت منو گرافیکی در جاوا

جستجو
پنج شنبه ۱۴ مرداد ۱۴۰۰ | ۲۱:۲۲:۳۵
۱۳۹۶/۳/۱۶ سه شنبه
(6)
(0)
♨️ جلسه دوازدهم - ساخت منو گرافیکی در جاوا
♨️ جلسه دوازدهم - ساخت منو گرافیکی در جاوا

کلاس JMenuBar
کلاس JMenuBar برای نمایش نوار منو در یک پنجره یا فریم برنامه استفاده می‌شود. شی ایجاد شده از کلاس JMenuBar خود می‌تواند شامل چندین منو شود.

کلاس JMenu  
هدف از کلاس JMenu نمایش رو به پایین لیست آیتم‌‌‌‌های یک منو است.

کلاس JMenuItem
بعد از این که MenuBar یا نوار منو خود را در فریم ایجاد کردیم و و بعد یک Menu به نوار منوی خود اضاف کردیم حالا می‌رسیم به مرحله اضاف کردن آیتم‌‌‌‌های خود به منو که با انتخاب منوی مربوطه لیست آیتم ها رو به پایین نمایش داده شوند.


برای ایجاد آیتم‌‌‌‌های یک منو از کلاس JMenuItem استفاده می‌کنیم.


برای درک این این سه کلاس تصویر(1) را مشاهده کنید:

ساخت منو در جاوا

•    یک JMenuBar می‌تواند از چندین JMenu تشکیل شود.


•    یک JMenu می‌تواند از چندین JMenuItem تشکیل شود.


•    همچنین می‌توانیم به یک JMenu، JMenu دیگری به عنوان یکی از ایتم‌‌‌‌های آن اضافه کنیم.تصویر(2)

آموزش ساخت منو در جاوا

بررسی تصویر(2) :


1.    بخش قرمز رنگ: JMenuBar ما که شامل چندین JMenu است.


2.    بخش سبز رنگ: آیتم‌‌‌‌های منو File که بصورت لیست رو به پایین نمایش داده شده اند.


3.    بخش آبی رنگ: آیتم‌‌‌‌های منو New را شامل می‌شود. منو New خود یک آیتم از منو File است.پس می‌توانیم یک JMenu را به عنوان یک آیتم از JMenu دیگر درنظر بگیریم.

خب بریم سراغ بررسی این مفاهیم با حل مثال:


مثال:

 
package java like  ;
import javax.swing.*;
class MenuExample
{
          JMenu menu, submenu;
          JMenuItem i1, i2, i3, i4, i5;
          MenuExample(){
          JFrame f= new JFrame("Menu and MenuItem Example");
          JMenuBar mb=new JMenuBar();
          menu=new JMenu("Menu");
          submenu=new JMenu("Sub Menu");
          i1=new JMenuItem("Item 1");
          i2=new JMenuItem("Item 2");
          i3=new JMenuItem("Item 3");
          i4=new JMenuItem("Item 4");
          i5=new JMenuItem("Item 5");
          menu.add(i1); menu.add(i2); menu.add(i3);
          submenu.add(i4); submenu.add(i5);
          menu.add(submenu);
          mb.add(menu);
          f.setJMenuBar(mb);
          f.setSize(400,400);
          f.setLayout(null);
          f.setVisible(true);
}
public static void main(String args[])
{
new MenuExample();
}}
 


خروجی: تصویر(3)

آموزش ساخت منوبار در جاوا

 
توضیحات:
          JMenu menu, submenu;
          JMenuItem i1, i2, i3, i4, i5;

•    دو JMenu و پنج JMenuItem که آیتم‌‌‌‌های منو‌‌‌‌های ما را تشکیل می‌دهند را تعریف کرده ایم.

JMenuBar mb=new JMenuBar();
 

•    یک منو بار برای چسباندن منو‌‌‌‌های خود به ان تعریف کرده و از آن شی ایجاد کرده ایم.پس فونداسیون و پایه منو‌‌‌‌های ما را منوبار تشکیل می‌دهد.

menu=new JMenu("Menu");
submenu=new JMenu("Sub Menu");
 

با صدا زدن سازنده‌‌‌‌های کلاس JMenu دو شی به نام‌‌‌‌های menu و submenu ایجاد می‌کنیم.

          i1=new JMenuItem("Item 1");
          i2=new JMenuItem("Item 2");
          i3=new JMenuItem("Item 3");
          i4=new JMenuItem("Item 4");
          i5=new JMenuItem("Item 5");
 

•    پنج شی از JMenuItem ایجاد می‌کنیم.این پنج شی آیتم‌‌‌‌های منو‌‌‌‌های مربوطه را تشکیل می‌دهند.

 

menu.add(i1); menu.add(i2); menu.add(i3);
 

•    آیتم‌‌‌‌های یک تا سه را به شی menu اضاف می‌کنیم.

submenu.add(i4); submenu.add(i5);
 
•    آیتم‌‌‌‌های چهار و پنج را به شی submenu اضاف می‌کنیم.
 
menu.add(submenu);
 
•    انگار زور شی menu از نوع کلاس JMenu بیشتر از شی submenu از نوع کلاس JMenu است.به عبارتی منو submenu جز زیر منو یا آیتمی از منو menu شده است. تصویر(3)
 
mb.add(menu);
 
•    در پایان شی menu از نوع کلاس JMenu را به منو بار خود اضاف می‌کنیم.
 
f.setJMenuBar(mb);
 

•    با این متد منوبار خود را به فریم اضاف می‌کنیم.


مثال:

 

package java like ;

import javax.swing.*;
import java.awt.event.*;

public class MenuExample implements ActionListener {
   JFrame f;
   JMenuBar mb;
   JMenu file, edit, help;
   JMenuItem cut, copy, paste, select All;
   JTextArea ta;

   MenuExample() {
       f = new JFrame();
       cut = new JMenuItem("cut");
       copy = new JMenuItem("copy");
       paste = new JMenuItem("paste");
        select All = new JMenuItem(" select All");
       cut.addActionListener(this);
       copy.addActionListener(this);
       paste.addActionListener(this);
        select All.addActionListener(this);
       mb = new JMenuBar();
       file = new JMenu("File");
       edit = new JMenu("Edit");
       help = new JMenu("Help");
       edit.add(cut);
       edit.add(copy);
       edit.add(paste);
       edit.add( select All);
       mb.add(file);
       mb.add(edit);
       mb.add(help);
       ta = new JTextArea();
       ta.setBounds(5, 5, 360, 320);
   
       f.add(ta);
       f.setJMenuBar(mb);
       f.setLayout(null);
       f.setSize(400, 400);
       f.setVisible(true);
   }

   public void actionPerformed(ActionEvent e) {
       if (e.getSource() == cut)
           ta.cut();
       if (e.getSource() == paste)
           ta.paste();
       if (e.getSource() == copy)
           ta.copy();
       if (e.getSource() == select All)
           ta. select All();
   }

   public static void main(String[] args) {
       new MenuExample();
   }
}
 

خروجی: تصویر(4)

آموزش ساخت منو گرافیکی در جاوا

•    یک برنامه ویرایشگر ساده را مشاهده می‌کنید که در بخش منو Edit آیتم select All را انتخاب کرده ایم که موجب انتخاب همه متن‌‌‌‌های درون ویرایشگر شده است.


توضیحات:

 

public class MenuExample implements ActionListener {
 
  • چون قصد داریم رویداد‌‌‌‌های مربوط به کلیک کردن روی آیتم‌‌‌‌های منو را دریافت کنیم اینترفیس ActionListener را در کلاس خود implements می‌کنیم.
 
1.    JFrame f;
2.    JMenuBar mb;
3.    JMenu file, edit, help;
4.    JMenuItem cut, copy, paste, select All;
5.    JTextArea ta;
 

1.    تعریف یک شی از نوع JFrame


2.    تعریف یک شی از نوع کلاس JMenuBar که منوبار ما را تشکیل می‌دهد.


3.    تعریف چند شی به عنوان منو‌‌‌‌های برنامه


4.    تعریف چند شی به عنوان آیتم‌‌‌‌های منو‌‌‌‌های برنامه


5.    تعریف یک شی از نوع کلاس JTextArea که محیط ویرایشگر ما را تشکیل می‌دهد.

cut = new JMenuItem("cut");
copy = new JMenuItem("copy");
paste = new JMenuItem("paste");
select All = new JMenuItem(" select All");
 
•    آیتم‌‌‌‌های خود را ایجاد می‌کنیم.

 

cut.addActionListener(this);
copy.addActionListener(this);
paste.addActionListener(this);
select All.addActionListener(this);
 

•    رویداد‌‌‌‌های ActionListener را به آیتم‌‌‌‌های خود اضاف می‌کنیم.در صورت کلیک کردن روی هر ایتم واکنش نسبت داده شده به هر ایتم اجرا می‌شود.

mb = new JMenuBar();

•    منوبار خود را ایجاد می‌کنیم.

file = new JMenu("File");
edit = new JMenu("Edit");
help = new JMenu("Help");

•    منو‌‌‌‌های خود را می‌سازیم.

edit.add(cut);
edit.add(copy);
edit.add(paste);
edit.add( select All);
 
•    آیتم‌‌‌‌های خود را به منو Edit اضاف می‌کنیم.

 

mb.add(file);
mb.add(edit);
mb.add(help);
 

•    حال منو‌‌‌‌های خود را به منو بار اضاف می‌کنیم.

 

ta = new JTextArea();
ta.setBounds(5, 5, 360, 320);
 
•    ناحیه متنی خود را ایجاد کرده و مختصات و ابعداد آن را تعیین می‌کنیم.
 
f.add(ta);

 

•    TextArea خود را به فریم اضاف می‌کنیم.

 

f.setJMenuBar(mb);
 
•    منوبار خود را به فریم اضاف می‌کنیم.
 
public void actionPerformed(ActionEvent e) {
       if (e.getSource() == cut)
           ta.cut();
       if (e.getSource() == paste)
           ta.paste();
       if (e.getSource() == copy)
           ta.copy();
       if (e.getSource() == select All)
           ta. select All();
   }
 

•    متد actionPerformed رویداد‌‌‌‌های رخ داده مثل کلیک کردن روی ایتمی از منو یا دکمه باتن و... را دریافت می‌کند.

 

if (e.getSource() == cut)
ta.cut();
 
•    در این دستور گفته شده اگر رویداد رخ داده برابر با آیتم cut (cut یکی از آیتم‌‌‌‌های منو Edit است) باشد، متد cut را صدا بزن.در صورت صدا زدن متد cut اگر متنی درون TextArea بود cut می‌شود.متد cut یکی از متد‌‌‌‌های درون کلاس JTextArea است.
 
if (e.getSource() == paste)
ta.paste();

 

 

•    در این دستور نیز اگر آیتم paste موجود در منو Edit را انتخاب کنیم، متد paste صدا زده می‌شود و عملا پیست کردن انجام می‌شود.

 

if (e.getSource() == copy)
ta.copy();


•    در این دستور نیز اگر آیتم copy موجود در منو Edit را انتخاب کنیم، متد copy که عمل کپی کردن را انجام میدهد صدا زده می‌شود.

 

if (e.getSource() == select All)
ta. select All();


•    اگر آیتم select All موجود در منو Edit را انتخاب کنیم، متد select All صدا زده شده و تمام متن‌‌‌‌های درون TextArea انتخاب می‌شوند.


نکته : متد‌‌‌‌های cut،copy، paste و select All متد‌‌‌‌های آماده موجود در کلاس JTextArea می‌باشند.که ما می‌توانیم از آنها به راحتی استفاده کنیم.

دوستان این جلسات آموزشی برای آشنایی و استارت کار برای شروع هر مبحث از جاوا است و بعد از مطالعه آن تئوری خواندن را رها کنید و تمرین و مثال‌‌‌‌های بیشتری حل کنید تا به چالش کشیده شوید و جزییات بیشتری از هر مبحث را یادبگیرید.

پیروز و موفق باشید


این جلسه آموزشی را می‌توانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)

آموزش آسان و ساده زبان برنامه نویسی جاوا

لینک دانلود

 

آموزش زبان جاواآموزش زبان جاوا


نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.

نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

0 نظر