کنترل JComboBox

کنترل JComboBox (نوار کرکره ای ) روش دیگری است که به کاربر اجازه دهید از بین گزینه های مختلف یکی را انتخاب کند. کنترل JComboBox شبیه یک کنترل TextBox است که در سمت راست آن یک دکمه قرار دارد. وقتی بر روی دکمه ی آن کلیک شود ، JComboBox یک نوار کرکره ای را که حاوی یک لیست از گزینه های مختلف است را نمایش می دهد. کاربر می تواند از بین این گزینه ها یکی را انتخاب کند.مورد انتخاب شده به متن داخل JComboBox تبدیل می شود. سازنده این کلاس به روش های زیر مقداردهی می شود :

public JComboBox()
public JComboBox(Object listData[])
public JComboBox(Vector listData)
public JComboBox(ComboBoxModel model)

در مثال زیر با کاربرد JComboBox آشنا می شوید:

   1: import javax.swing.*;
   2: import java.awt.event.*;
   3: 
   4: public class FrameDemo 
   5: {
   6:     public static void main(String[] args) 
   7:     {
   8:         final JFrame frame1 = new JFrame("JComboBox Demo");   
   9:         JPanel Panel1 =  new JPanel();
  10:         final JComboBox ComboBox1 = new JComboBox();
  11:         Panel1.add(ComboBox1);
  12:         frame1.add(Panel1); 
  13:         
  14:         ComboBox1.addItem("Johnny");
  15:         ComboBox1.addItem("Kenneth");
  16:         ComboBox1.addItem("Mark");
  17:         ComboBox1.addItem("Ralph");
  18:         ComboBox1.addItem("Sussie");
  19:                 
  20:         class MyItemListener implements ActionListener 
  21:         {
  22:             public void actionPerformed(ActionEvent e) 
  23:             {
  24:                 String selectedName = ComboBox1.getSelectedItem().toString();
  25:                 JOptionPane.showMessageDialog(frame1,selectedName);
  26:             }
  27:         }
  28:         
  29:         ComboBox1.addActionListener(new MyItemListener() );
  30:               
  31:         frame1.setSize(430 , 315);
  32:         frame1.setVisible(true);          
  33:     }   
  34: }

کلا هدف از برنامه بالا این است که با کلیک بر روی هر آیتم از JComboBox مقدار آن به صورت پیام نمایش داده شود. در خطوط 12-8 کد بالا یک Frame، یک Panel و یک ComboBox ایجاد کرده ایم. در خطوط 18-14 آیتم هایی را که قرار است به JComboBox اضافه شوند را با استفاده از متد ()addItem اضافه می کنیم. چون که قرار است با کلیک بر روی آیتم های کمبوباکس پیام نمایش داده شود پس باید رابط ActionListener توسط یک کلاس پیاده سازی شود. این کار را در خط 20 انجام داده ایم. در خطوط 25-24 هم کدهای بدنه متد ()actionPerformed این رابط را فراهم می کنیم. در خط 24 یک رشته تعریف کرده ایم و با استفاده از متد ()getSelectedItem کنترل JComboBox مقدار آیتم انتخاب شده را در داخل این رشته می ریزیم. در خط 25 هم با استفاده از کلاس JOptionPane مقدار این رشته که همان آیتم انتخاب شده کمبوباکس است را نمایش می دهیم :
combobox-in-java-01
برای اضافه کردن آیتم ها به کمبوباکس به صورت زیر هم می توان عمل کرد :

String[] items = { "Johnny", "Kenneth", "Mark", "Ralph", "Sussie" };
        
JComboBox ComboBox1 = new JComboBox(items);

در این روش یک آرایه از نوع رشته تعریف و سپس آیتم های مورد نظرتان را به آن اضافه می کنید. سپس نام آرایه را به سازنده کلاس JComboBox ارسال می کنید. آیتم های کمبوباکس دارای اندیس هستند و این اندیس ها از صفر شروع می شوند. اندیس اولین آیتم 0 ، اندیس دومین آیتم 1 و … . برای به دست آوردن اندیس آیتم انتخاب شده از متد ()getSelectedIndex استفاده می شود. خط 24 کد بالا را به صورت زیر تغییر دهید :

String selectedName = String.valueOf(ComboBox1.getSelectedIndex());

برنامه را اجرا و با انتخاب یک آیتم نتیجه را مشاهده کنید :
combobox-in-java-02