کنترل JCheckBox

کنترل JCheckBox یک دکمه است و به شکل یک جعبه ی خالی به همراه یک برچسب در کنار آن نمایش داده می شود. در حالت عادی ،زمانی که بر روی جعبه ی خالی کلیک شود ، یک تیک در داخل جعبه نمایان می شود که به ما می گوید کنترل JCheckBox در حالت Selected قرار دارد. برخلاف دکمه ی Radio که فقط اجازه ی انتخاب یکی از Radio های فرم را به ما می داد، شما می توانید چند عدد CheckBox و یا همه ی آنها را تیک بزنید. سازنده کلاس JCheckBox به روش های زیر مقداردهی می شود :

public JCheckBox()
public JCheckBox(Icon icon)
public JCheckBox(Icon icon, boolean selected)
public JCheckBox(String text)
public JCheckBox(String text, boolean selected)
public JCheckBox(String text, Icon icon)
public JCheckBox(String text, Icon icon, boolean selected)
public JCheckBox(Action action)

JCheckBox دو حالت On یا Off ( تیک خورده و تیک نخورده ) را قبول کند، در نتیجه شما به سادگی می توانید از متد ()isSelected که دو مقدار True به معنی اینکه JCheckBox تیک خورده و False به معنی اینکه JCheckBox تیک نخورده است را بر می گرداند، استفاده کنید. در مثال زیر نحوه ی کاربرد کنترل CheckBox را مشاهده می کنید :

   1: import java.awt.*;
   2: import javax.swing.*;
   3: import java.awt.event.*;
   4: 
   5: public class FrameDemo 
   6: {
   7:     public static void main(String[] args) 
   8:     {
   9:         final JFrame frame1 = new JFrame("JCheckBox Demo");
  10:     
  11:         JPanel Panel1 = new JPanel();
  12:         Panel1.setLayout(new GridLayout(4,1));
  13:         
  14:         final JCheckBox CheckBox1 = new JCheckBox("Soap");
  15:         final JCheckBox CheckBox2 = new JCheckBox("Shampoo");
  16:         final JCheckBox CheckBox3 = new JCheckBox("Toothpaste");
  17:         JButton buttonShow = new JButton("Show Choice");
  18: 
  19:         Panel1.add(CheckBox1);
  20:         Panel1.add(CheckBox2);
  21:         Panel1.add(CheckBox3);
  22:         Panel1.add(buttonShow);
  23:         
  24:         frame1.add(Panel1);
  25:         
  26:         class SelectedCheckBox implements ActionListener
  27:         {
  28:             @Override
  29:             public void actionPerformed(ActionEvent e) 
  30:             {
  31:                 String items = "";
  32:                 if (CheckBox1.isSelected()) 
  33:                 {
  34:                     items += "\n Soap";            
  35:                 }
  36:                 if (CheckBox2.isSelected()) 
  37:                 {
  38:                     items += "\n Shampoo";            
  39:                 }
  40:                 if (CheckBox3.isSelected()) 
  41:                 {
  42:                     items += "\n Toothpaste";            
  43:                 }
  44:                 JOptionPane.showMessageDialog(frame1,items);
  45:             }
  46:         }
  47:         
  48:         buttonShow.addActionListener(new SelectedCheckBox());
  49:               
  50:         frame1.setSize(356 , 263);
  51:         frame1.setVisible(true);          
  52:     }   
  53: }

در کد بالا قرار است که وقتی کاربر چک باکس ها را انتخاب و سپس بر روی دکمه کلیک کرد نام چک باکس های انتخاب شده نمایش داده شود. در خطوط 24-9 یک Frame ایجاد کرده ایم. سپس سه کنترل JCheckBox و یک دکمه را به یک Panel و خود Panel را به Frame اضافه نموده ایم. برای اداره رویداد کلیک دکمه در خطوط 42-28 یک کلاس ایجاد می کنیم که رابط ActionListener را پیاده سازی می کند. سپس در داخل بدنه متد ()actionPerformed مربوط به این رابط هم کدهای خطوط 44-31 را می نویسیم. در این کد ، یک متغیر از نوع رشته ای تعریف کرده ایم و آنرا با یک رشته ی تهی مقدار دهی کرده ایم. سپس چک می کنیم که کدام یک از چک باکس ها تیک خورده اند ،هر کدام از آنها که تیک خورده اند نامشان به وسیله ی عملگر += در رشته ای که قبلا به صورت تهی تعریف کرده ایم قرار می گیرد. سپس به وسیله ی یک پیغام (JOptionPane) نتایج را در خروجی نمایش می دهیم.

jcheckbox-in-java-01