View Full Version : RadioButton group
soheril.server
سه شنبه 11 اسفند 1388, 21:22 عصر
با سلام
این سوال رو قیلا" هم پرسیدم که چه طور میشه وقتی 50 تا radiobutton رو group کردیم بفهمیم که کدوم انتخاب شده(بدون استفاده از تابع isSelected چون این طوری باید این تابع رو برای همه ی radiobutton ها بنویسیم و خیلی طولانی میشه...)
یادمه یکی از دوستان (Ermia 2008) که البته الان نمیدونم متاسفانه خیلی وقته انگار در سایت نمیان یه راه خیلی خیلی عالی گفتن ولی متاسفانه من گمش کردم...
فقط یادمه کدش مثلا" به این صورت نوشته شده بود:
for(Enumaration e=jbuttongroup1.getElements();e.hasmoreElements;)
{
-------------------------
}
حالا من اون نقطه چینا رو یادم نیست...خواهشا" یکی کمکم کنه...با همین نمونه کد یا اگه جور دیگری بلدید لطف کنید کدش رو بنویسید...:لبخندساده::لبخندس اده::لبخندساده:
sara.f
سه شنبه 11 اسفند 1388, 21:53 عصر
با سلام
این سوال رو قیلا" هم پرسیدم که چه طور میشه وقتی 50 تا radiobutton رو group کردیم بفهمیم که کدوم انتخاب شده(بدون استفاده از تابع isSelected چون این طوری باید این تابع رو برای همه ی radiobutton ها بنویسیم و خیلی طولانی میشه...)
یادمه یکی از دوستان (Ermia 2008) که البته الان نمیدونم متاسفانه خیلی وقته انگار در سایت نمیان یه راه خیلی خیلی عالی گفتن ولی متاسفانه من گمش کردم...
فقط یادمه کدش مثلا" به این صورت نوشته شده بود:
for(Enumaration e=jbuttongroup1.getElements();e.hasmoreElements;)
{
-------------------------
}
حالا من اون نقطه چینا رو یادم نیست...خواهشا" یکی کمکم کنه...با همین نمونه کد یا اگه جور دیگری بلدید لطف کنید کدش رو بنویسید...:لبخندساده::لبخندس اده::لبخندساده:
سلام شما گفتید که قبلا هم این سوال را پرسیدید و کاربر ermia2008 جواب داده.
این تاپیک این خصوصیات را داره.
http://barnamenevis.org/forum/showthread.php?t=205991&highlight=radiobutton
jlover
چهارشنبه 12 اسفند 1388, 04:09 صبح
عجب !
جالبه من هم یه تاپیک عین این رو قبلن دیدم و در اون بحث شرکت کردم ( در واقع به سهم خودم جواب سوال مطرح شده رو دادم )
هم عنوانش شباهت زیادی به عنوان این تاپیک داشت،هم آغازگر هر دو تاپیک بسیار شبیه هم بودند !!!
راستی آدرسش :
http://barnamenevis.org/forum/showthread.php?t=207792
soheril.server
چهارشنبه 12 اسفند 1388, 20:50 عصر
سلام شما گفتید که قبلا هم این سوال را پرسیدید و کاربر ermia2008 جواب داده.
این تاپیک این خصوصیات را داره.
http://barnamenevis.org/forum/showth...ht=radiobutton (http://barnamenevis.org/forum/showthread.php?t=205991&highlight=radiobutton)
عجب !
جالبه من هم یه تاپیک عین این رو قبلن دیدم و در اون بحث شرکت کردم ( در واقع به سهم خودم جواب سوال مطرح شده رو دادم )
هم عنوانش شباهت زیادی به عنوان این تاپیک داشت،هم آغازگر هر دو تاپیک بسیار شبیه هم بودند !!!
راستی آدرسش :
http://barnamenevis.org/forum/showthread.php?t=207792
دوستان خیلی متشکر ولی اون تاپیکی رو که بنده گفتم خیلی وقت پیش به دلایلی متاسفانه پاکش کردم و الان در دسترس نیست...اگه بود که دیگه مشکلی نبود...
دوست عزیز(jLover) از شما هم ممنون ولی راه حلی که شما پیشنهاد کردید نیز طولانی میشود و تفاوت چندانی با روش ساده ی isSelected به ارمغان نمی آورد...خواهشا" اگر مقدور است همان طور که در بالا ذکر کردم باشد....:تشویق::تشویق::چشمک::ل خندساده:
ermia2008
چهارشنبه 12 اسفند 1388, 22:22 عصر
سلام دوست عزیز.
درس و کلاس یه کم دست و پاموی آدمو می بنده. اینه که کمتر میرسم سر بزنم. به هر حال...
کدش به اینصورته:
for(Enumeration e=buttonGroup1.getElements() ;e.hasMoreElements(); )
{
JRadioButton tmp = (JRadioButton) e.nextElement();
if(tmp.isSelected())
JOptionPane.showMessageDialog(null, tmp.getName());
}
موفق باشید
jlover
پنج شنبه 13 اسفند 1388, 02:46 صبح
دوست عزیز(jLover) از شما هم ممنون ولی راه حلی که شما پیشنهاد کردید نیز طولانی میشود و تفاوت چندانی با روش ساده ی isSelected به ارمغان نمی آورد...خواهشا" اگر مقدور است همان طور که در بالا ذکر کردم باشد....:تشویق::تشویق::چشمک::ل خندساده:
کاملن برعکس
اگه منظور شما بالا بردن کارایی و بازدهی باشه ( که خودم خیلی روی این موضوع حساسیت دارم ) و همچنین با احتساب اینکه :
(بدون استفاده از تابع isSelected چون این طوری باید این تابع رو برای همه ی radiobutton ها بنویسیم و خیلی طولانی میشه...)
توضیحی که اونجا عرض کردم :
یه چیزی هم به نظرم میرسه اینه که اگه یه شنودگر ItemListener برای هر کدوم از این دکمه ها ثبت کرده باشیم،اونوقت میتونیم در متد ()itemStateChanged و از طریق اعمال متد getItem روی پارامتر به محتوای دکمه ای که انتخاب شده برسیم ، بدون استفاده از حلقه !
کاملن به کار میاد
در اینصورت شما در برنامه تون برای پی بردن به مورد انتخاب شده نه از متد ()isSelected
استفاده میکنید و نه مهمتر از یک حلقه
شکلی از حلقه ی for که دوست عزیزمون ermia بهتون معرفی کردند هم یک حلقه ست و نیاز داره تا منابع سیستم صرف پیمایش حلقه بشند !
اگر به این شکل از حلقه ی for که همراه با jdk5 فکر میکنم معرفی شده ( برای سهولت نوشتن کد ) علاقه مند هستید میتونید عبارت For-each رو در اینترنت جستجو کنید(برای مثال در انتهای صفحه ای که برتون پیوند دادم ، نمونه هم داره :
http://leepoint.net/notes-java/flow/loops/foreach.html
آلترناتیو دیگه ای از این فرم که شباهت بسیار زیادی به قطعه کد پست قبل داره ( و البته کارکرد کاملن یکسان ) به شکل ساختار زیر هست :
// [consider that options is that array of [I]JRadioButton[/I
for ( JRadioButton button : options ){
if ( button.isSelected() )
/* پیاده سازی کدهای مورد نظر شما */
}
بنابراین ، هر سه رویکرد ( دو قطعه کدی که بنده و جناب ermia نشون دادیم و همچنین شکل سنتی حلقه ی for ) کارکرد کاملن یکسانی دارند :
پیمایش لیستی از اشیای JRadioButton به اندازه ی تعداد اشیای حاضر در لیست در یک حلقه ؛
و به هیچوجه بی نیاز از استفاده از متد ()isSelected نخواهید بود و چه بسا استفاده از فرم سنتی حلقه ی for و پیمایش در آرایه ی JRadioButton ها به مراتب کاراتر نیز خواهد بود ، چرا که در رویکرد ارایه شده در پست قبل شما باید ابتدا یک Enum بسازید + شرط وجود عنصر رو بررسی کنید ( با استفاده از متد ()hasMoreElements ) + در قالب درآوری هر عنصر به صورت JRadioButton ( با استفاده از ()JRadioButton tmp = (JRadioButton) e.nextElement ) + ...
و هنوز خیلی مشتاقم ببینم میتونید به بنده بفرمایید منظورتون از
چون این طوری باید این تابع رو برای همه ی radiobutton ها بنویسیم و خیلی طولانی میشه...
چی بوده !؟
مگه شما برای نمونه سازی و مقداردهی مثلن 50 تا شی ء ( در اینجا JRadioButton ) ، از حلقه استفاده نمیکنید ؟!
در ضمن
خواهشا" یکی کمکم کنه...با همین نمونه کد یا اگه جور دیگری بلدید لطف کنید کدش رو بنویسید...
بنده هم همون بار اول جور دیگر رو خدمتتون عرض کردم
ولی حالا میفرمایید :
خواهشا" اگر مقدور است همان طور که در بالا ذکر کردم باشد...
:متفکر:
-------------------------------------------------------------------------------------------
از اینکه این جسارت رو میکنم عذر میخام(چون حق من نیست و وظیفه ی مدیران باید باشه فکر میکنم)،فقط میخام به عنوان عضو کوچیکی از این انجمن در پویاییش سهمی داشته باشم :
خیلی بهتر بود که در همون تاپیک اولی که ایجاد کردید بحث رو ادامه میدادید،این افزونگی مطلوب نیست،و صرف ایجاد یک عنوان جدید ،به معنای ایجاد یک محتوای جدید نیست !
پیروز باشید
soheril.server
پنج شنبه 13 اسفند 1388, 21:08 عصر
دوست عزیز، jlover
اگر بنده جسارت کردم و با ادبیات بدی مطلبم رو نوشتم همینجا از شما عذر خواهی میکنم، همچنین از شما به خاطر پاسخ مفیدتان متشکر، در مورد انتقادتان هم، به روی چشم...ببخشید اگر این تاپیک رو اینقدر طولانی کردم، من به شخصه عذر خواهی میکنم:خجالت:
همچنین دوست عزیز، ermia2008
از شما هم به خاطر حضورتان متشکر هم چنین به خاطر پاسخ مفیدتان
با تشکر از همگی:تشویق::لبخندساده:
jlover
جمعه 14 اسفند 1388, 05:56 صبح
دوست عزیز، jlover
اگر بنده جسارت کردم و با ادبیات بدی مطلبم رو نوشتم همینجا از شما عذر خواهی میکنم، همچنین از شما به خاطر پاسخ مفیدتان متشکر، در مورد انتقادتان هم، به روی چشم...ببخشید اگر این تاپیک رو اینقدر طولانی کردم، من به شخصه عذر خواهی میکنم:خجالت:
همچنین دوست عزیز، ermia2008
از شما هم به خاطر حضورتان متشکر هم چنین به خاطر پاسخ مفیدتان
با تشکر از همگی:تشویق::لبخندساده:
نه دوست عزیز شما بد حرف نزدید
من ( به غیر از انتقادی که سرآخر عرض کردم ) فقط خاستم از ایده ای که مطرح کردم دفاع کنم
پیروز باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.