جستجو
۱۳۹۶/۳/۱۱ پنج شنبه
(1)
(0)
جلسه نهم - کلاس JComboBox در جاوا
جلسه نهم - کلاس JComboBox در جاوا
کلاس JComboBox جزیی از پکیج Swing در جاوا است که یک لیست کشویی انتخابی را ارائه می کند و به کاربر اجازه می دهید یک آیتم از میان لیست موجود را انتخاب کند. برای درک بهتر شکل ظاهری این اجزای گرافیکی تصویر(1) را مشاهده کنید:

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

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

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

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



خب روش پیاده سازی کلاس 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 نظر
طراحی شده توسط شرکت طراحی سایت و سایت ساز آنلاین یوتاب - فروشگاه ساز اینترنتیطراحی شده توسط شرکت طراحی سایت و سایت ساز آنلاین یوتاب - فروشگاه ساز اینترنتی