menusearch
javapro.ir

♨️ جلسه سیزدهم - کلاس JPopupMenu در جاوا

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

فهرست جلسات آموزش گرافیک در جاوا

جلسه اول | معرفی Swing در جاوا

جلسه دوم | کلاس JButton در جاوا

جلسه سوم | کلاس JLabel در جاوا

جلسه چهارم | کلاس JTextField درجاوا

جلسه پنجم | کلاس JTextArea در جاوا

جلسه ششم | کلاس JPasswordField در جاوا

جلسه هفتم | کلاس JCheckBox در جاوا

جلسه هشتم | کلاس JRadioButton در جاوا

جلسه نهم | کلاس JComboBox در جاوا

جلسه دهم | کلاس JTabel در جاوا

جلسه یازدهم | کلاس JOptionPane در جاوا

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

جلسه سیزدهم | کلاس JPopupMenu در جاوا

جلسه چهاردهم | کلاس JSeparator در جاوا

جلسه پانزدهم | کلاس JProgressBar در جاوا

جلسه شانزدهم | کلاس JTree در جاوا

جلسه هفدهم | کلاس JColorChooser

جلسه هجدهم | کلاس JSlider در جاوا

جلسه نوزدهم | کلاس JSpinner در جاوا

جلسه بیستم | کلاس JPanel در جاوا

جلسه بیست و یکم | کلاس JFileChooser در جاوا

جلسه بیست و دوم | کلاس JLayeredPane در جاوا

جلسه بیست و سوم | استفاده از ToolTip در جاوا

جلسه بیست و چهارم |تغییر آیکون Frame در جاوا

جلسه بیست و پنجم | کلاس Graphics در جاوا

جلسه بیست و ششم | نمایش تصویر در Swing

 

آموزش رایگان گرافیک در زبان برنامه نویسی جاوا را در سایت جاواپرو دنبال کنید

 

♨️ جلسه سیزدهم - کلاس JPopupMenu در جاوا

 

 

یکی دیگر از اجزای گرافیکی که جاوا برای ساخت برنامه های دسکتاپی ارائه کرده کلاس JPopupMenu است.


کلاس PopupMenu منویی است که می‌تواند بصورت پویا در یک موقعیت مشخص در یک اجزای گرافیکی ظهور کند. برای درک بهتر از شکل ظاهری PopupMenu می‌توانیم به مثال کلیک سمت راست در صفحه دسکتاپ کامپیوتر اشاره کنیم،وقتی ما در یک موقعیت مشخص از صفحه دسکتاپ با موس کلیک سمت راست می‌کنیم یک لیستی از گزینه ها نمایش داده می‌شود که این لیست همان PopupMenu است.تصویر(1)


اموزش ساخت PopupMenu  در جاوا

•    همان طور که میدانید ما در هر مکان یا موقعیت از صفحه دکستاپ کلیک سمت راست کنیم این منو پویا نمایش داده می‌شود. خب در این جلسه قصد داریم روش ساخت این منو را یاد بگیریم که با کلیک کردن ( راست یا چپ) موس در برنامه خود یک PopupMenu نمایش داده شود.

 


• سازنده های پرکاربرد کلاس JPopupMenu :

 

توصیفسازنده
برای ایجاد یک JPopupMenu بدون پارامترJPopupMenu()
برای ایجاد یک JPopupMenu با عنوان مشخصJPopupMenu(String label)




خب توضیحات زیادی هم خوب نیست! بریم سراغ حل مثال :-)

 

مثال:

 

package javalike ;

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

class PopupMenuExample {
   PopupMenuExample() {
       final JFrame f = new JFrame("PopupMenu Example");
       final JPopupMenu popupmenu = new JPopupMenu("Edit");
       JMenuItem cut = new JMenuItem("Cut");
       JMenuItem copy = new JMenuItem("Copy");
       JMenuItem paste = new JMenuItem("Paste");
       popupmenu.add(cut);
       popupmenu.add(copy);
       popupmenu.add(paste);
       f.addMouseListener(new MouseAdapter() {
           public void mouseClicked(MouseEvent e) {
               popupmenu.show(f, e.getX(), e.getY());
           }
       });
       f.add(popupmenu);
       f.setSize(300, 300);
       f.setLayout(null);
       f.setVisible(true);
   }

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

 


خروجی: برنامه هنگام اجرا به صورت تصویر(2) خواهد بود:

آموزش آسان JPopupMenu در جاوا

 

•    حال اگر هر جایی از فریم برنامه کلیک سمت راست یا چپ کنیم JPopupMenu ما نمایش داده می‌شود.تصویر(3)



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

 

final JPopupMenu popupmenu = new JPopupMenu("Edit");

 

•    مثل هر اجزای گرافیکی دیگر برای استفاده از JPopupMenu از آن شی ایجاد کرده و متنی را که نقش عنوان منوی ما را دارد جایگزین پارامتر سازنده آن می‌کنیم.

 

JMenuItem cut = new JMenuItem("Cut");
JMenuItem copy = new JMenuItem("Copy");
JMenuItem paste = new JMenuItem("Paste");

 

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

 

popupmenu.add(cut);
popupmenu.add(copy);
popupmenu.add(paste);

 

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

 

f.addMouseListener(new MouseAdapter() {
           public void mouseClicked(MouseEvent e) {
               popupmenu.show(f, e.getX(), e.getY());
           }
       });

 

 

•    همان طور که در ابتدا گفتیم JPopupMenu با کلیک کردن موس در یک مکان از برنامه نمایش داده می‌شود.پس ما باید از دستوری استفاده کنیم که بتواند رویداد مربوط به کلیک کردن موس در برنامه را شناسایی و دریافت کند و سپس عمل مورد نظر ما را اجرا کند.


•    MouseAdapter یک کلاس انتزاعی یا abstract است که برای دریافت رویدادهای مربوط به موس استفاده می‌شود. منظور از رویدادهای موس همان کلیک کردن و دکمه های موس است.


•    کلاس MouseAdapter در بدنه خودش متدهایی دارد که یکی از آنها متد mouseClicked است، متد mouseClicked وظیفه اش دریافت رویدادهای مربوط به کلیک کردن موس است، یعنی بار هر بار کلیک کردن موس این متد صدا زده می‌شود، و دستورات درون بدنه آن اجرا می‌شود.


•    addMouseListener برای ثبت رویدادهای مربوط به موس در یک اجزای گرافیکی استفاده می‌شود. مثلا در اینجا شی f که از نوع کلاس JFrame هستش این متد را صدا زده است.این باعث میشه هر کجای فریم با موس کلیک کنیم، رویداد رخ داده به فریم اضاف شود. به بیان ساده تر این متد باعث میشه frame به کلیک کردن موس روی آن حساس شود.

 

f.addMouseListener(new MouseAdapter() {
           public void mouseClicked(MouseEvent e) {
               popupmenu.show(f, e.getX(), e.getY());
           }
       });

 

•    در دستور بالا برای اضاف کردن رویداد موس به فریم متد addMouseListener را صدا زده ایم.

 


•    شی از کلاس انتزاعی MouseAdapter به جای پارامتر متد addMouseListener ایجاد می‌کنیم.


•    متد mouseClicked را overrid یا بازنویسی می‌کنیم.

 

popupmenu.show(f, e.getX(), e.getY());

 

•    متد show یکی از متدهای مربوط به کلاس JPopupMenu است. این متد برای نمایش منو JPopupMenu در مختصات x و y اجزای گرافیکی ما کاربرد دارد. در اینجا برای نمایش JPopupMenu ما در مختصات x و y فریم ما استفاده شده است.


•    سینتکس یا نحوه نوشتن متد show بصورت زیر است:

 

public void show( Component origin, int x, int y )

 

1.    بجای پارامتر Component origin یک شی از اجزای گرافیکی که قراره منو JPopupMenu با کلیک کردن روی آن نمایش داده شود، قرار می‌گیرد.


2.    x و y نیز موقعیت نمایش منو JPopupMenu را در اجزای گرافیکی مشخص می‌کند.

 

   popupmenu.show(f, e.getX(), e.getY());

 

•    در اینجا شی f که از نوع کلاس JFrame است را به عنوان اجزای گرافیکی که قراره منو ما در آن نمایش داده شود به عنوان پارامتر اول متد show قرار داده ایم.

 

e.getX(), e.getY()

 

•    e از نوع کلاس MouseEvent است، یعنی رویدادهایی که از طرف موس رخ می‌دهد در شی e ذخیره می‌شود.


•    حال قصد داریم مختصات نقطه ای از اجزای گرافیکی که روی آن نقطه با موس کلیک شده است را دریافت کنیم، برای این کار از طریق شی e متدهای getX و getY را صدا می‌زنیم.


•    متد getX مقدار x مکان کلیک شده را می‌دهد.


•    متد getY مقدار y مکان کلیک شده را می‌دهد.

 

1.f.add(popupmenu);
2.f.setSize(300, 300);
3.f.setLayout(null);
4.f.setVisible(true);

 

1.    افزودن شی از نوع کلاس JPopupMenu به فریم.


2.    تعیین اندازه فریم


3.    چون از طرح بندی خاصی استفاده نکردیم مقدار پارامتر این متد را null قرار دادیم.


4.    برای نمایش فریم و تمام اجزای گرافیکی این متد را صدا زده و پارامتر آن را true قرار می‌دهیم

 

 

مثال:

 

package javalike ;

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

class PopupMenuExample {
   PopupMenuExample() {
       final JFrame f = new JFrame("PopupMenu Example");
       final JLabel label = new JLabel();
       label.setHorizontalAlignment(JLabel.CENTER);
       label.setSize(400, 100);
       final JPopupMenu popupmenu = new JPopupMenu("Edit");
       JMenuItem cut = new JMenuItem("Cut");
       JMenuItem copy = new JMenuItem("Copy");
       JMenuItem paste = new JMenuItem("Paste");
       popupmenu.add(cut);
       popupmenu.add(copy);
       popupmenu.add(paste);
       f.addMouseListener(new MouseAdapter() {
           public void mouseClicked(MouseEvent e) {
               popupmenu.show(f, e.getX(), e.getY());
           }
       });
       cut.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
               label.setText("cut MenuItem clicked.");
           }
       });
       copy.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
               label.setText("copy MenuItem clicked.");
           }
       });
       paste.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
               label.setText("paste MenuItem clicked.");
           }
       });
       f.add(label);
       f.add(popupmenu);
       f.setSize(400, 400);
       f.setLayout(null);
       f.setVisible(true);
   }

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

 


خروجی: بعد از اجرای برنامه و کلیک کردن روی فریم خروجی بصورت تصویر(4) خواهد بود:



آموزش گرافیک در جاوا

•    حال گزینه copy را از میان آیتم های PopupMenu انتخاب می‌کنیم، خروجی بصورت تصویر(5) خواهد بود:

PopupMenu در جاوا

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

توضیحات:

 

import java.awt.event.*;

 

•    برای استفاده تمام رویدادهای موس و صفحه کلید و.... از این پکیج در برنامه خود استفاده می‌کنیم.

 

label.setHorizontalAlignment(JLabel.CENTER);

 

•    متد setHorizontalAlignment برای تنظیم حالت افقی label ما کاربرد دارد. و پارامتر JLabel.CENTER میگه لیبل ما را وسط یا مرکز حالت افقی در فریم قرار بده.

 

   cut.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
               label.setText("cut MenuItem clicked.");
           }
       });

 

•    اگر جلسات قبل رو مطالعه کرده باشید باید با متد addActionListener آشنا باشید، این متد برای اضاف کردن یک ActionListener به اجزای گرافیکی ما نظیر دکمه ها، منوها،آیتم ها و...استفاده می‌شود.


•    در اینجا قصد داریم یک ActionListener را به شی cut که از نوع کلاس JMenuItem است اضاف کنیم. که با انتخاب این آیتم عمل خاصی اجرا شود.

 

public void actionPerformed(ActionEvent e) {
               label.setText("cut MenuItem clicked.");
           }

 

•    متد actionPerformed رویدادهای مربوط به انتخاب یا کلیک کردن روی اجزای گرافیکی را دریافت می‌کند.مثل فشردن دکمه button، گزینه ای در منو ها و...


•    وقتی رویدادی رخ دهد متد actionPerformed صدا زده می‌شود و دستورات درون بدنه ان اجرا می‌شود.

 

label.setText("cut MenuItem clicked.");

 

•    اگر متد actionPerformed صدا زده شود دستور فوق اجرا می‌شود.


•    این دستور یک متن را درون label قرار میدهد.


سایر موارد در این جلسه و جلسات قبل توضیح داده ایم.


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


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

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

 

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


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

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

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

0 نظر
هدر سایت
دوره برنامه نویسی Spring Core
مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو  [کلیک کنید]
آموزش پروژه محور اسپرینگ بوت(Spring Boot)-سیستم دانشگاه
ثبت نام در دوره آموزش Spring security
دوره معماری میکروسرویس ها (Microservices) با استفاده از Spring Boot و Spring Cloud
دوره پرتاب | آموزش پیش نیازهای برنامه نویسی
دوره آموزش مبانی زبان برنامه نویسی جاوا
دوره آموزش مفاهیم پیشرفته زبان برنامه نویسی جاوا
مقدمه ای از زبان برنامه نویسی جاوا(java)
آموزش زبان برنامه نویسی جاوا
آموزش گرافیک در زبان برنامه نویسی جاوا
آموزش مدیریت چیدمان گرافیکی در زبان جاوا
آموزش ساخت بازی دوبعدی در زبان جاوا
Collection ها در زبان برنامه نویسی جاوا
آموزش پروژه محور ساخت برنامه مدیریت بانک با JavaFX
نمونه پروژه های رایگان زبان جاوا
آموزش دیتابیس در زبان برنامه نویسی جاوا
نمونه مثال پایه ای زبان برنامه نویسی جاوا
نمونه مثال String در زبان برنامه نویسی جاوا
آموزش جامع برنامه نویسی JavaFX
آموزش ساخت برنامه آزمون تستی در JavaFX
آموزش برنامه نویسی سوکت در جاوا
آموزش ساخت برنامه دفترچه تلفن با JavaFX
آموزش ساخت ربات ساده تلگرام با زبان جاوا
آموزش ساخت برنامه ماشین حساب با JavaFX
آموزش ساخت برنامه ساده مدیریت ایمیل ها با JavaFX
دوره آموزش Spring Boot
سفارش انجام پروژه زبان برنامه نویسی جاوا(JAVA)
سفارش انجام پروژه برنامه نویسی متلب(MATLAB) با قیمت منصفانه و تحویل به موقع
سفارش انجام پروژه زبان برنامه نویسی سی شارپ (#C)
سفارش انجام پروژه زبان برنامه نویسی سی(C)
سفارش انجام پروژه زبان برنامه نویسی پایتون(Python)
سفارش انجام پروژه زبان برنامه نویسی PHP (پی اچ پی)
سفارش انجام پروژه زبان برنامه نویسی اسمبلی(Assembly)
سفارش انجام پروژه زبان برنامه نویسی جاوا اسکریپت (Javascript)
سفارش انجام پروژه هوش مصنوعی
سفارش انجام پروژه طراحی الگوریتم
سفارش انجام پروژه ساختمان داده ها
سفارش انجام پروژه مهندسی نرم افزار
سفارش انجام پروژه شبکه های کامپیوتری
سفارش انجام پروژه پایگاه داده: دیتابیس (database)
 سفارش انجام پروژه سیستم عامل
سفارش انجام پروژه پاورپوینت(PowerPoint)
سفارش انجام پروژه اکسل (Excel)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب
گفتگو را شروع کنید
مشاوره ،تدریس خصوصی و سفارش انجام انواع پروژه های برنامه نویسی