menusearch
javapro.ir
جستجو
۱۳۹۶/۳/۱۱ پنج شنبه
(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_javalike ;
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 javalike   ;
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 selected: "
                        + cb.getItemAt(cb.getselectedindex());
                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 selected: "
4.    + cb.getItemAt(cb.getselectedindex());
5.    label.setText(data);
6.    }
7.    });


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

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

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

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


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

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

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

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

 



jcombobox in java
 

 

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

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


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


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

 

getItemAt(int arg);
 

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

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


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

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

getselectedindex();
 

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

cb.getItemAt(cb.getselectedindex());
 

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

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

label.setText(data);


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

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

 


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

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

لینک دانلود
   

 

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


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

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

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

0 نظر
شرکت سازنده