menusearch
javapro.ir

♨️ جلسه نهم - کلاس JComboBox در جاوا

جستجو
چهارشنبه ۵ آبان ۱۴۰۰ | ۱۹:۵۷:۴۶
۱۳۹۶/۳/۱۱ پنج شنبه
(4)
(0)
♨️ جلسه نهم - کلاس JComboBox در جاوا
♨️ جلسه نهم - کلاس JComboBox در جاوا

کلاس JComboBox جزیی از پکیج Swing در جاوا است که یک لیست کشویی انتخابی را ارائه می‌کند و به کاربر اجازه

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

لیست کشویی در جاوا

•    در تصویر(1) بخش قرمز رنگ یک ComboBox را نشان می‌دهد.همان طور که در تصویر(1) مشاهده می‌کنید یک ComboBox

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

 

سازنده‌‌‌‌های پرکاربرد کلاس JComboBox:

 

توصیفسازنده
ایجاد یک JComboBox با مدل داده ای پیش فرض JComboBox()
ایجاد یک JComboBox که لیست آن را عناصر مشخصی از یک آرایه تشکیل می‌دهد.JComboBox(Object[] items)

 


متد‌‌‌‌های پرکاربرد کلاس JComboBox:

 

توصیفمتد
این متد یک آیتم را به لیستی از آیتم‌‌‌‌های JComboBox اضاف می‌کند.void addItem(Object anObject)
این متد یک آیتم را از لیستی از آیتم‌‌‌‌های JComboBox حذف می‌کندvoid removeItem(Object anObject)
این متد همه آیتم ها را از لیست حذف می‌کندvoid removeAllItems()

این متد تعیین می‌کند که ایا لیست کشویی (JComboBox) ایجاد شده قابل ویرایش باشد یا خیر.

 

اگر پارامتر متد true باشد قابل ویرایش است در غیر این صورت اگر false بود غیر قابل ویرایش است.

void setEditable(boolean b)

برای افزودن یک ActionListener به لیست کشویی ما کاربر دارد.


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


این متد برای سایر اجزای گرافیکی در جاوا که قصد داریم هنگام کلیک کردن یا انتخاب آنها یک عمل خاصی را انجام دهد استفاده می‌شود.

void addActionListener(ActionListener a)

برای افزودن یک ItemListener به لیست کشویی کاربرد دارد.


این متد هم برای نسبت دادن عملی خاص در صورت رخ دادن رویداد مربوطه استفاده می‌شود.

void addItemListener(ItemListener i)

 

خب روش پیاده سازی کلاس JComboBox در جاوا را بررسی می‌کنیم:

 

•    ابتدا یک کلاس با نام ComboBoxExample تعریف می‌کنیم:

 

public class ComboBoxExample {

}


•    قصد داریم اجزای گرافیکی خود را در سازنده کلاس ایجاد کنیم برای این کار سازنده ای در بدنه کلاس خود پیاده سازی می‌کنیم:

public class ComboBoxExample {

   ComboBoxExample() {

   }

}
 
•    چون که قصد داریم از اجزای گرافیکی در برنامه خود استفاده کنیم پکیج Swingرا در برنامه خود import می‌کنیم:
import javax.swing.*;

public class ComboBoxExample {

    ComboBoxExample() {

   }

}


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


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

بعد سایر مصالح را به آن اضاف می‌کنند! در ساخت برنامه کاربردی در جاوا نیز ابتدا یک فریم که حکم اسکلت برنامه دارد را ایجاد می‌کنیم:

 

import javax.swing.*;

public class ComboBoxExample {

   ComboBoxExample() {
       JFrame f = new JFrame("ComboBox Example");

   }

}

 

•    یک ارایه تعریف و مقداردهی اولیه می‌کنیم، عناصر این آرایه آیتم‌‌‌‌های لیست JComboBox ما را تشکیل خواهد داد:

​import javax.swing.*;

public class ComboBoxExample {

   ComboBoxExample() {
       JFrame f = new JFrame("ComboBox Example");
        String city[]={"Borazjan","Bushehr","Shiraz","Tabriz","Tehran"};
   }

}

 

 

•    حال یک شی از کلاس JComboBox ایجاد می‌کنیم:

import javax.swing.*;
public class ComboBoxExample {

   ComboBoxExample() {
       JFrame f = new JFrame("ComboBox Example");
        String city[]={"Borazjan","Bushehr","Shiraz","Tabriz","Tehran"};
        JComboBox cb=new JComboBox(city);  
   }

}


•    حالا مختصات و ابعاد لیست کشویی خود را در فریم تعیین می‌کنیم:

import javax.swing.*;
public class ComboBoxExample {

   ComboBoxExample() {
       JFrame f = new JFrame("ComboBox Example");
        String city[]={"Borazjan","Bushehr","Shiraz","Tabriz","Tehran"};
        JComboBox cb=new JComboBox(city);  
        cb.setBounds(50, 50,90,20);
   }

}

 

•    در این مرحله شی cb را با صدا زدن متد add به frame خود اضافه می‌کنیم و چون قصد نداریم از طرح بندی خاصی برای اجزای گرافیکی

خود استفاده کنیم بعد از صدا زدن متد setLayout مقدار پارامتر آن را null قرار می‌دهیم. :

import javax.swing.*;
public class ComboBoxExample {

   ComboBoxExample() {
       JFrame f = new JFrame("ComboBox Example");
        String city[]={"Borazjan","Bushehr","Shiraz","Tabriz","Tehran"};
        JComboBox cb=new JComboBox(city);  
        cb.setBounds(50, 50,90,20);
        f.add(cb);
        f.setLayout(null);
   }

}

 

•    تعیین سایز فریم برنامه و نمایش فریم و تمام اجزای گرافیکی :

 

import javax.swing.*;
public class ComboBoxExample {

   ComboBoxExample() {
       JFrame f = new JFrame("ComboBox Example");
        String city[]={"Borazjan","Bushehr","Shiraz","Tabriz","Tehran"};
        JComboBox cb=new JComboBox(city);  
        cb.setBounds(50, 50,90,20);
        f.add(cb);
        f.setSize(400,500);    
           f.setVisible(true);
   }

}


در گام اخر برای اجرای برنامه متد main را در بدنه کلاس پیاده سازی کرده و از کلاس خود شی ایجاد می‌کنیم و برنامه را کامپایل و اجرا می‌کنیم:

package swing_java like  ;
import javax.swing.*;    
public class ComboBoxExample {    
JFrame f;    
ComboBoxExample(){    
    f=new JFrame("ComboBox Example");    
    String city[]={"Borazjan","Bushehr","Shiraz","Tabriz","Tehran"};        
    JComboBox cb=new JComboBox(city);    
    cb.setBounds(50, 50,90,20);    
    f.add(cb);        
    f.setLayout(null);    
    f.setSize(400,500);    
    f.setVisible(true);        
}    
public static void main(String[] args) {    
    new ComboBoxExample();        
}    
}
 


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

 

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

 

•    همان طور که در تصویر(2) مشاهده می‌کنید یک لیست کشویی ایجاد کردیم که آیتم‌‌‌‌های آن عناصر یک ارایه می‌باشند.
•    در این برنامه هیچ اکشن و عملی را برای لیست کشویی خود تعریف نکردیم.

مثال:

 

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

public class ComboBoxExample {
   JFrame f;

   ComboBoxExample() {
       f = new JFrame("ComboBox Example");
       final JLabel label = new JLabel();
       label.setHorizontalAlignment(JLabel.CENTER);
       label.setSize(400, 100);
       JButton b = new JButton("Show");
       b.setBounds(200, 100, 75, 20);
       String languages[] = { "C", "C++", "C#", "Java", "PHP" };
       final
JComboBox cb = new JComboBox(languages);
       cb.setBounds(50, 100, 90, 20);
       f.add(cb);
       f.add(label);
       f.add(b);
       f.setLayout(null);
       f.setSize(350, 350);
       f.setVisible(true);
       b.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
               String data = "Programming language select ed: "
                       + cb.getItemAt(cb.get select ed index ());
               label.setText(data);
           }
       });
   }

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

 


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



گرافیک در جاوا

 

•    طبق تصویر(3) ما یک لیست کشویی داریم که آیتم‌‌‌‌های آن را نام‌‌‌‌های زبان برنامه نویسی تشکیل داده است.با انتخاب یکی

از نام ها و کلیک کردن روی دکمه show پیامی در label برنامه در بالا فریم نمایش داده می‌شود.ما آیتم Java را انتخاب

می کنیم و دکمه show: تصویر(4)



گرافیک در جاوا

 

 

توضیحات:


ما اکثر دستوراتی که در این کد هستش را در این جلسه و جلسات قبل بررسی کردیم. در اینجا دستورات زیر از مثال بالا را بررسی می‌کنیم:

 

 

1.    b.addActionListener(new ActionListener() {
2.    public void actionPerformed(ActionEvent e) {
3.    String data = "Programming language select ed: "
4.    + cb.getItemAt(cb.get select ed index ());
5.    label.setText(data);
6.    }
7.    });


1.    برای اضاف کردن یک ActionListener به لیست کشویی استفاده می‌شود.برای افزودن یک ActionListener به لیست کشویی،

یک شی بصورت مستقیم از اینترفیس ActionListener ایجاد می‌کنیم .در بدنه این اینترفیس، متد actionPerformed قرار دارد که وظیفه

دریافت رویدادها را برعهده دارد مثلا وقتی روی یکی آیتم‌‌‌‌های لیست کشویی کلیک می‌کنیم یک رویداد رخ می‌دهد که توسط

متد actionPerformed دریافت می‌شود و دستورات درون بدنه این متد اجرا می‌شود.


3.    یک متغیر از نوع String تعریف کرده که درون آن متن "Programming language select ed:" به همراه نام آیتم مورد نظر را می‌ریزد.
آیتم‌‌‌‌های درون یک لیست کشویی هر کدام یک ایندکس دارند که نشان دهنده مکان‌ آنها در بین آیتم‌‌‌‌های لیست کشویی است.

مثل آرایه ها ،ایندکس آیتم‌‌‌‌های لیست کشویی از شماره 0 شروع می‌شود. اولین آیتم از بالای لیست دارای ایندکس شماره 0 است

و به ترتیب آیتم دوم از بالا دارای ایندکس شماره 1 و آیتم سوم دارای ایندکس شماره 2 و....آیتم n ام لیست کشویی دارای ایندکس

شماره n-1 است. برای درک بهتر تصویر(5) را مشاهده کنید:

 



jcombobox in java

 

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

JComboBox از طریق همین ایندکس ها است.


خب حالا چطوری از طریق ایندکس به آیتم‌‌‌‌های یک لیست کشویی دسری پیدا کنیم؟


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

 

getItemAt(int arg);
 

•    با جایگزین کردن شماره ایندکس آیتم مربوطه با پارامتر arg این متد آیتم مورد نظر را به ما می‌دهد، مثلا اگر در تصویر(5) شماره ایندکس 3 را

به متد getItemAt دهیم این متد آیتم Java را به ما پس می‌دهد.


•    خب این متد با دریافت ایندکس، آیتم را از لیست کشویی به ما پس می‌دهد، حالا چطور با انتخاب هر آیتم شماره ایندکس آن را دریافت کنیم؟

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

get select ed index ();
 

•    با کلیک کردن روی یکی از آیتم‌‌‌‌های لیست کشویی و انتخاب آن، این متد شماره ایندکس آیتم انتخاب شده را برمی گرداند.

cb.getItemAt(cb.get select ed index ());
 

•    این دستور cb.get select ed index   شماره ایندکس آیتم انتخاب شده توسط کاربر را برمیگرداند و مقدار برگردانده شده را درون پارامتر

متد getItemAt می‌ریزد و متد getItemAt آِیتم مربوط به شماره ایندکس دریافت شده را برای ما برمیگرداند.

label.setText(data);


در پایان متغیر data که حاوی متن "Programming language select ed: " و آیتم انتخاب شده از لیست کشویی هستش را درون label
 

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

 


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

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

لینک دانلود
 

 

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


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

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

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

1 نظر
محمد سپهر ملایی
جمعه شانزدهم خرداد ۹۹
پاسخ
()
()
محمد سپهر ملایی
سلام ميشه به جاي getItemAt و getselectedindex مستقيم از getselectedItem استفاده کرد
گفتگو را شروع کنید
رزو مشاوره و تدریس خصوصی برنامه نویسی و سفارش انواع پروژه‌‌‌‌های برنامه نویسی