از کلاس JRadioButton برای ساخت دکمه های رادیویی در برنامه استفاده میشود. خب دکمه های رادیویی چه شکلی هستند؟ تصویر(1)
• همان طور که در تصویر(1) مشاهده میکنید RadioButton ها دکمه هایی دایره ای شکل هستند که بر خلاف CheckBox ها تنها میتوان یک گزینه از میان چندین گزینه را از میان آنها انتخاب کرد.از دکمه های رادیویی بصورت گسترده در سیستم های امتحانی یا کوئیز و نظرسنجی استفاده میشود.
سازنده های پرکاربرد کلاس JRadioButton :
توصیف | سازنده |
ایجاد یک دکمه رادیویی un select ed بدون متن | JRadioButton() |
ایجاد یک دکمه رادیویی un select ed با متن مشخص | JRadioButton(String s) |
ایجاد یک دکمه رادیویی با متن مشخص و تعیین نوع select ed آن
| JRadioButton(String s, boolean select ed) |
متدهای پرکاربرد کلاس JRadioButton :
توصیف | سازنده |
تعیین متن برای دکمه رادیویی | void setText( String s) |
متن دکمه رادیویی را برای ما برمیگرداند | String getText() |
یکی از متدهای مهم که هر اجزای گرافیکی آن را دارا است. اگر این متد صدا زده شود و مقدار پارامتر آن را false قرار دهیم دکمه رادیویی در فریم نمایش داده نمیشود و اگر true قرار دهیم دکمه رادیویی ما در فریم نمایش داده میشود. | void setEnabled( boolean b) |
برای قرار دادن آیکون روی دکمه رادیویی ما استفاده میشود. | void setIcon( Icon b) |
این متد برای اضاف کردن یک ActionListener به دکمه رادیویی ما استفاده میشود. | void addActionListener( ActionListener a) |
package javalike ; import javax.swing.*; public class RadioButtonExample { JFrame f; RadioButtonExample(){ f=new JFrame(); JRadioButton r1=new JRadioButton("A) Male"); JRadioButton r2=new JRadioButton("B) Female"); r1.setBounds(75,50,100,30); r2.setBounds(75,100,100,30); ButtonGroup bg=new ButtonGroup(); bg.add(r1);bg.add(r2); f.add(r1);f.add(r2); f.setSize(300,300); f.setLayout(null); f.setVisible(true); } public static void main(String[] args) { new RadioButtonExample(); } } |
خروجی: تصویر(2)
• همان طور که در تصویر(2) مشاهده میکنید ما تنها حق انتخاب یکی از گزینه های A یا B را داریم.
توضیحات:
1. import javax.swing.*; 2. public class RadioButtonExample { 3. JFrame f; 4. RadioButtonExample(){ 5. f=new JFrame(); 6. JRadioButton r1=new JRadioButton("A) Male"); 7. JRadioButton r2=new JRadioButton("B) Female"); 8. r1.setBounds(75,50,100,30); 9. r2.setBounds(75,100,100,30); |
1. برای استفاده از کلاس های آماده اجزای گرافیک این پکیج را import میکنیم.
2. کلاس ما که نامآن با حرف بزرگ باید شروع شود.
3. تعریف یک متغیر از نوع کلاس JFram
4. درون سازنده کلاس ،اجزای گرافیکی خود را ایجاد میکنیم.
5. شی کلاس JFrame را ایجاد میکنیم.
6. از کلاس JRadioButton شی به نام r1 ایجاد کرده ایم و متنی را جایگزین پارامتر سازنده آن کرده ایم که این متن در کنار دکمه رادیویی نمایش داده میشود.
7. مثل مورد 6 عمل کرده ایم
8. تعیین مختصات و ابعداد دکمه رادیویی r1
9. تعیین مختصات و ابعداد دکمه رادیویی r2
ButtonGroup bg=new ButtonGroup(); |
• توضیح این مثال فعلا متوقف میکنیم و کلاس ButtonGroup را بررسی میکنیم و بعد از آن به مثال برمی گردیم:
کلاس ButtonGroup :
ما بعد از این که دکمه های رادیویی(RadioButton) خود را ایجاد کردیم، هر دکمه بصورت مستقل میتواند انتخاب شود!!یعنی انتخاب یک گزینه بین چند گزینه وجود ندارد! و همه گزینه هم را میتوانیم انتخاب کنیم. مثال تصویر(3)
در تصویر(3) همان طور که مشاهده میکنید ما تمامی دکمه های رادیویی را انتخاب کرده ایم! که ویژگی یک انتخاب بین چند گزینه دکمه های رادیویی را نقض میکند!!! برای این که این مشکل پیش نیاید باید از کلاس ButtonGroup استفاده کنیم.
اگر از کلاس ButtonGroup استفاده کنیم قابلیت تنها یک انتخاب بین چند گزینه را به دکمه های رادیویی خود میدهیم: تصویر(4)
همان طور که در تصویر(4) مشاهده میکنید ما تنها حق انتخاب یک گزینه بین چند سه گزینه موجود را داریم.پس در کنار کلاس JRadioButton باید از کلاس ButtonGroup نیز استفاده کنیم.
برگردیم به ادامه بررسی مثال:
ButtonGroup bg=new ButtonGroup(); bg.add(r1);bg.add(r2); |
• با شی bg که از نوع کلاس ButtonGroup است متد add را صدا میزنیم و شی های r1 و r2 که از نوع کلاس JRadioButton هستند را جایگزین پارامتر متد میکنیم.
• متد add برای افزودن دکمه های رادیویی به شی از نوع کلاس ButtonGroup است.با این کار دکمه های رادیویی ما در یک گروهی قرار میگیرند که کاربر تنها حق انتخاب یکی از آنها را دارد.
1. f.add(r1);f.add(r2); 2. f.setSize(300,300); 3. f.setLayout(null); 4. f.setVisible(true); 5. } |
1. افزودن دکمه های رادیویی به فریم
2. تعیین ابعداد فریم
3. چون از طرح بندی خاصی فعلا نمیخوایم استفاده کنیم مقدار پارامتر این متد را null قرار داده ایم.
4. برای نمایش فریم و تمام اجزای گرافیکی خود از این متد استفاده میکنیم.
مثال:
package swing_javalike ; import javax.swing.*; import java.awt.event.*; class RadioButtonExample extends JFrame implements ActionListener { JRadioButton rb1, rb2; JButton b; JLabel l; RadioButtonExample() { rb1 = new JRadioButton("Male"); rb1.setBounds(100, 50, 100, 30); rb2 = new JRadioButton("Female"); rb2.setBounds(100, 100, 100, 30); ButtonGroup bg = new ButtonGroup(); bg.add(rb1); bg.add(rb2); l = new JLabel(); l.setBounds(100, 170, 100, 100); b = new JButton("click"); b.setBounds(100, 150, 80, 30); b.addActionListener(this); add(l); add(rb1); add(rb2); add(b); setSize(300, 300); setLayout(null); setVisible(true); } public void actionPerformed(ActionEvent e) { if (rb1.is select ed()) { l.setText("You are Male."); } if (rb2.is select ed()) { l.setText("You are Female."); } } public static void main(String args[]) { new RadioButtonExample(); } } |
خروجی: بعد از اجرای برنامه با انتخاب دکمه رادیویی Male و کلیک کردن روی دکمه click پیامی در label پایین فریم نمایش داده میشود تصویر(5)
• تمامی دستوراتی که در این مثال استفاده در این جلسه و جلسات قبل توضیح داده شده است.
هدف ما بهبود کیفیت و کمیت محتوای آموزشی فارسی در زمینه جاوا ست. آرزوی ما توسعه کمی و کیفی محتوای وب فارسی است بطوری که شاهده محتوای زرد و بی کیفیت آزار دهنده در اینترنت نباشیم
پیروز و موفق باشید
این جلسه آموزشی را میتوانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)
لینک دانلود
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690