کنترل JRadioButton

کنترل JRadioButton یا دکمه رادیویی دکمه ای است که دارای دو حالت خاموش و روشن می باشد. دکمه ی JRadioButton یک دکمه ی دایره ای شکل به همراه یک برچسب است. شما با کلیک کردن بر روی دکمه ی JRadioButton می توانید آنرا از حالت خاموش به روشن ویا بلعکس تغییر دهید. وقتی که یک دکمه ی JRadioButton روشن باشد ، یک نقطه در وسط آن قرار می گیرد ، و زمانی که خاموش باشد ، دایره ی آن خالی است.
دکمه های رادیویی معمولا زمانی استفاده می شوند که یک کاربر می بایست از بین چند گزینه یکی از آنها را انتخاب کند. برای مثال: زمانی که شما بخواهید جنسیت کاربر را مشخص کنید ، می توانید از دو دکمه رادیویی با نام های مرد و زن استفاده کنید. وقتی که شما از دکمه های رادیویی استفاده کردید ، فقط می توانید یکی از آن دو را انتخاب کنید. سازنده کلاس JRadioButton به روش هایی زیر مقداردهی می شود :

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

برای آشنایی با کاربرد دکمه های رادیویی به مثال زیر توجه کنید :

  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("JRadioButton Demo");
 10:     
 11:         JPanel Panel1 = new JPanel();
 12:         Panel1.setLayout(new GridLayout(3,1));
 13:         
 14:         final JRadioButton radioButtonYes = new JRadioButton("Yes");
 15:         final JRadioButton radioButtonNo  = new JRadioButton("NO");
 16:         JButton buttonShow = new JButton("Show Choice");
 17:         
 18:         ButtonGroup ButtonGroup1 = new ButtonGroup ();
 19:         ButtonGroup1.add(radioButtonYes);
 20:         ButtonGroup1.add(radioButtonNo);
 21: 
 22:         Panel1.add(radioButtonYes);
 23:         Panel1.add(radioButtonNo);
 24:         Panel1.add(buttonShow);
 25:         
 26:         frame1.add(Panel1);
 27:         
 28:         class SelectedRadio implements ActionListener
 29:         {
 30:             @Override
 31:             public void actionPerformed(ActionEvent e) 
 32:             {
 33:                 if (radioButtonYes.isSelected()) 
 34:                 {
 35:                     JOptionPane.showMessageDialog(frame1, "You choosed Yes!");
 36:                 } 
 37:                 else if (radioButtonNo.isSelected())
 38:                 {
 39:                     JOptionPane.showMessageDialog(frame1,"You choosed No!");
 40:                 }
 41:             }
 42:         }
 43:         
 44:         buttonShow.addActionListener(new SelectedRadio());
 45:               
 46:         frame1.setSize(356 , 263);
 47:         frame1.setVisible(true);          
 48:     }   
 49: }

هدف از کد بالا این است که با کلیک بر روی یک دکمه یک پیام مبنی بر انتخاب یک دکمه به کاربر نمایش داده شود. در خطوط 12-9 یک Frame و یک Panel و در خطوط 16-14 دو عدد دکمه ی رادیویی با نام های radioButtonYes و radioButtonNo و یک کنترل Button با نام buttonShow ایجاد کرده ایم. این دکمه ها را در خطوط 24-22 به Panel اضافه می کنیم. در جاوا به طور همزمان می توان دو دکمه رادیویی را در حالت انتخاب قرار داد، در حالیکه انتظاری که ما از دکمه های رادیویی داریم این است که همزمان یکی از آنها قابل انتخاب باشد. برای رفع این مشکل در جاوا کلاسی به نام ButtonGroup وجود دارد که با اضافه کردن دکمه ها به یک شی از این کلاس (خطوط 20-18) این امکان را به وجود می آوریم که همزمان یکی از دکمه ها انتخاب شود. برای اداره رویداد کلیک دکمه در خطوط 42-28 یک کلاس ایجاد می کنیم که رابط ActionListener را پیاده سازی می کند. سپس در داخل بدنه متد ()actionPerformed مربوط به این رابط هم کدهای خطوط 40-33 را می نویسیم.
وقتی که شما بر روی buttonShow کلیک می کنید ، برنامه تعیین می کند که کدام JRadioButton انتخاب شده است. شما می توانید این کار را به وسیله ی متد ()isSelected انجام دهید. این متد در صورتیکه یک کنترل انتخاب شده باشد مقدار true در غیر اینصورت false را بر می گرداند. ما از یک عبارت شرطی if برای تعیین اینکه JRadioButton انتخاب شده است یا خیر استفاده می کنیم. اگر آن انتخاب نشده باشد ، پس دکمه ی JRadioButton ی دیگر انتخاب شده است . چون ما فقط دو دکمه ی JRadioButton بر روی فرم دارم و نهایتا یکی از آنها انتخاب می شود.
jradiobutton-in-java-01

jradiobutton-in-java-02