menusearch
javapro.ir

♨️جلسه نوزدهم - کلاس JSpinner در جاوا

جستجو
شنبه ۳ آذر ۱۴۰۳ | ۱۳:۲۸:۵۳
۱۳۹۶/۳/۲۴ چهارشنبه
(2)
(0)
♨️جلسه نوزدهم - کلاس JSpinner در جاوا
♨️جلسه نوزدهم - کلاس JSpinner در جاوا

فهرست جلسات آموزش گرافیک در جاوا

جلسه اول | معرفی Swing در جاوا

جلسه دوم | کلاس JButton در جاوا

جلسه سوم | کلاس JLabel در جاوا

جلسه چهارم | کلاس JTextField درجاوا

جلسه پنجم | کلاس JTextArea در جاوا

جلسه ششم | کلاس JPasswordField در جاوا

جلسه هفتم | کلاس JCheckBox در جاوا

جلسه هشتم | کلاس JRadioButton در جاوا

جلسه نهم | کلاس JComboBox در جاوا

جلسه دهم | کلاس JTabel در جاوا

جلسه یازدهم | کلاس JOptionPane در جاوا

جلسه دوازدهم | ساخت منو گرافیکی در جاوا

جلسه سیزدهم | کلاس JPopupMenu در جاوا

جلسه چهاردهم | کلاس JSeparator در جاوا

جلسه پانزدهم | کلاس JProgressBar در جاوا

جلسه شانزدهم | کلاس JTree در جاوا

جلسه هفدهم | کلاس JColorChooser

جلسه هجدهم | کلاس JSlider در جاوا

جلسه نوزدهم | کلاس JSpinner در جاوا

جلسه بیستم | کلاس JPanel در جاوا

جلسه بیست و یکم | کلاس JFileChooser در جاوا

جلسه بیست و دوم | کلاس JLayeredPane در جاوا

جلسه بیست و سوم | استفاده از ToolTip در جاوا

جلسه بیست و چهارم |تغییر آیکون Frame در جاوا

جلسه بیست و پنجم | کلاس Graphics در جاوا

جلسه بیست و ششم | نمایش تصویر در Swing

 

آموزش رایگان گرافیک در زبان برنامه نویسی جاوا را در سایت جاواپرو دنبال کنید

 

♨️جلسه نوزدهم - کلاس JSpinner در جاوا

 

کلاس JSpinner اجزای (component) گرافیکی است که به کاربر اجازه می‌دهد یک عدد یا یک مقدار را از یک دنباله مرتب از پیش تعیین شده انتخاب کند. برای درک بهتر از ظاهر JSpinner تصویر(1) را مشاهده کنید:

 

آموزش گرافیک در جاوا



•    سازنده های پرکاربرد کلاس JSpinner :
سازنده های jspinner در جاوا

•    متدهای پرکاربرد کلاس JSpinner :

متدهای JSpinner در جاوا



مثال:

package javalike ;
import javax.swing.*;    
public class SpinnerExample {
   
public static void main(String[] args) {    
    JFrame f=new JFrame("Spinner Example");    
    SpinnerModel value =
           
new SpinnerNumberModel(5, //initial value
                0, //minimum value
                10,
//maximum value  
                1);
//step
    JSpinner spinner = new JSpinner(value);  
            spinner.setBounds(100,100,50,30);    
            f.add(spinner);    
            f.setSize(300,300);    
            f.setLayout(null);    
            f.setVisible(true);    
}
}


خروجی:تصویر(2)



آموزش رایگان ایجاد jspinner در زبان برنامه نویسی جاوا


توضیحات:

SpinnerModel value = new SpinnerNumberModel(5, 0, 10, 1);
 

•    برای ایجاد یک مدل داده ای برای Spinner خود از کلاس SpinnerModel شی ایجاد می‌کنیم.
•    پارامتر سازنده کلاس SpinnerModel به ترتیب عبارت است از :
1.    عدد 5 برای مقداردهی اولیه به Spinner است. هنگام نمایش Spinner مقدار انتخاب شده پیشفرض آن 5 است.
2.    عدد 0 minimum مقدار Spinner ما است. یعنی مقدار Spinner را نمی‌توانیم کمتر از عدد صفر تغییر دهیم.
3.    عدد 10 maximum مقدار Spinner ما است. یعنی مقدار Spinner را نمی‌توانیم بیشتر از عدد ده تغییر دهیم.
4.    با توجه به موارد 2 و 3، محدوده مقادیر Spinner ما بین 0 تا 10 است و تنها در این بازه می‌توانیم مقادیر Spinner را تغییر دهیم.
5.    عدد 1 گام های تغییر مقدار Spinner ما را تعیین می‌کند. مثلا عدد 1 باعث می‌شود یکی یکی مقادیر Spinner خود را تغییر دهیم. اگر مثلا عدد 3 بود سه تا سه تا مقادیر Spinner تغییر میکرد.

JSpinner spinner = new JSpinner(value);

•    از کلاس JSpinner شی ایجاد کرده و شی value که از نوع SpinnerModel است و مدل داده ای Spinner را مشخص می‌کند به عنوان پارامتر به سازنده کلاس JSpinner داده ایم.

1.               spinner.setBounds(100,100,50,30);    
2.                f.add(spinner);    
3.                f.setSize(300,300);    
4.                f.setLayout(
null);    
5.                f.setVisible(
true);    


1.    تعیین مختصات و ابعداد spinner
2.    اضاف کردن spinner به فریم
3.    تعیین اندازه فریم
4.    چون فعلا از طرح بندی خاصی استفاده نکردیم مقدار پارامتر این متد را null قرار می‌دهیم.
5.    برای نمایش فریم و تمام اجزای گرافیکی از این متد استفاده می‌کنیم.

مثال:

 

package javalike ;

import javax.swing.*;
import javax.swing.event.*;

public class SpinnerExample {
 
public static void main(String[] args) {
       JFrame f =
new JFrame("Spinner Example");
       final JLabel label =
new JLabel();
       label.setHorizontalAlignment(JLabel.
CENTER);
       label.setSize(250, 100);
       SpinnerModel value =
new SpinnerNumberModel(5, // initial value
               0, // minimum value
               10, // maximum value
               1); // step
       JSpinner spinner = new JSpinner(value);
       spinner.setBounds(100, 100, 50, 30);
       f.add(spinner);
       f.add(label);
       f.setSize(300, 300);
       f.setLayout(null);
       f.setVisible(true);
       spinner.addChangeListener(
new ChangeListener() {
        
public void stateChanged(ChangeEvent e) {
               label.setText(
"Value : "
                       + ((JSpinner) e.getSource()).getValue());
           }
       });
   }
}


خروجی: تصویر(3)



کاربرد spinner در جاوا



توضیحات:

 

1.    label.setHorizontalAlignment(JLabel.CENTER);
2.    label.setSize(250, 100);

1.    با این دستور label ما در وسط مختصات افقی در فریم قرار میگیرد.
2.    تعیین اندازه label
 
spinner.addChangeListener(new ChangeListener() {
           public void stateChanged(ChangeEvent e) {
               label.setText(
"Value : "
                       + ((JSpinner) e.getSource()).getValue());
           }
       });

 

•    متد addChangeListener برای افزودن یک ChangeListener به spinner ما کاربرد دارد.
•    ChangeListener یک اینترفیس است که از طریق متد stateChanged که در بدنه آن قرار دارد رویدادهای مربوط به تغییر مقدار spinner را دریافت می‌کند.
•    با هر بار رخ دادن رویدادی روی spinner متد stateChanged صدا زده می‌شود و دستورات درون آن اجرا می‌شود.

label.setText("Value : "+ ((JSpinner) e.getSource()).getValue());

 

•    این دستور مقدار انتخاب شده spinner را درون label نمایش می‌دهد.
•    خب چطور این کار انجام می‌شود؟!
وقتی رویدادی رخ می‌دهد درون شی e که از نوع کلاس ChangeEvent هستش ریخته می‌شود.حال ما از طریق شی e متد getSource را صدا زده ایم، این متد همون طور که از اسمش پیداست میگرده منبع رویداد ( منظور همون اجزای گرافیکی که رویدادی روی آن آنها اتفاق افتاده است) را پیدا میکند و بصورت یک شی از نوع کلاس Object (پدر همه کلاس هاست) برمیگرداند. یک مشکل کوچک پیش اومده! مقدار برگردانده شده از نوع کلاس Object است و از طرفی اجزای گرافیکی ما از نوع کلاس JSpinner هستش! چکار باید کنیم؟! باید شی از نوع کلاس Object را به شی از نوع کلاس JSpinner تبدیل می‌کنیم.

چگونه؟ با استفاده از روش casting یا تبدیل نوع، به سادگی نوع کلاس خود را درون پرانتز در کنار شی کلاسی که قصد داریم آن را تبدیل کنیم قرار می‌دهیم. مثلا در اینجا کلاس JSpinner درون پرانتز در کنار e.getSource که شی کلاس Object را برمیگرداند قرار داده ایم. حالا بعد از تبدیل شی از نوع کلاس Object به شی از نوع کلاس JSpinner به راحتی می‌توانیم متد getValue را صدا بزنیم.متد getValue مقدار انتخاب شده Spinner را برمی گرداند.
حال از طریق شی label متد setText را صدا زده و رشته "Value : " همراه با مقدار spinner را درون لیبل نمایش می‌دهیم.
•    اگر توضیحات گیج کننده بود نگران نباشید!! تنها با نگاه کردن به کد و تغییر دادن کد روش کار دستتون میاد. شما میگید مثال رو نگاه کن و دستکاری کن! تا یاد بگیری! مثلا چکار کنم؟! ی نمونه دستکاری که خودم انجام دادم که مفهوم دستور زیر رو یادبگیرم را در مثال بعدی نگاه کنید:

((JSpinner) e.getSource()).getValue()


مثال:

package javalike ;

import javax.swing.*;
import javax.swing.event.*;

public class SpinnerExample {
   
public static void main(String[] args) {
       JFrame f = new JFrame("Spinner Example");
       SpinnerModel value =
new SpinnerNumberModel(5, // initial value
               0, // minimum value
               10, // maximum value
               1); // step
       JSpinner spinner =
new JSpinner(value);
       spinner.setBounds(100, 100, 50, 30);
       f.add(spinner);
       f.setSize(300, 300);
       f.setLayout(null);
       f.setVisible(true);
       spinner.addChangeListener(new ChangeListener() {
           
public void stateChanged(ChangeEvent e) {

               System.
out. print ln(e.getSource());
               System.
out. print ln((JSpinner) e.getSource());
               System.
out. print ln(((JSpinner) e.getSource()).getValue());
           }
       });
   }
}


خروجی: بعد از اجرای برنامه اگر مقدار spinner را به عدد 6 تغییر دهیم خروجی به صورت تصویر(4) خواهد بود:



گرافیک در جاوا

•    مقدار پیشفرض این spinner ابتدا 5 بود که به عدد 6 تغییر دادیم که نتیجه این تغییر در محیط کنسول به صورت زیر است:

خروجی در کنسول:


آموزش گرافیک در جاوا


•    خروجی سبز رنگ نتیجه دستور زیر است، خروجی سبز آدرس شی است که متد getSource برگردانده است.

System.out. print ln(e.getSource());


•    خروجی آبی رنگ نتیجه دستور زیر است، خروجی آبی آدرس شی بعد از عمل casting است.

System.out. print ln(((JSpinner) e.getSource()));


•    خروجی صورتی رنگ نتیجه دستور زیر است:

System.out. print ln(((JSpinner) e.getSource()).getValue());


توضیحات:

System.out. print ln(e.getSource());


•    این دستور منبعی که رویدادی روی آن رخ داده است را برمیگرداند و چاپ می‌کند.
•    متد getSource منبع رویداد رخ داده را برمی گرداند.
•    این منبع میتونه یک اجزای گرافیکی نظیر JSpinner و... باشد.
•    همان طور که در جلسات گذشته گفتیم کلاس Object پدر همه کلاس ها است. به عبارتی همه کلاس های درون جاوا زیر کلاس و فرزند کلاس Object است.
•    خب getSource شی که برمیگرداند از نوع کلاس Object است. این شی میتونه یکی از اجزای گرافیکی در جاوا باشد ولی نمی‌توانیم مستقیم به متدها و ویژگی های آن اجزای گرافیکی دسرسی داشته باشیم و باید حتما عمل casting را انجام دهیم. برای درک سطح دسرسی شی که این متد بدون عمل casting برای ما برمیگرداند تصویر(5) را مشاهده کنید:


آموزش کاربرد متد getsource در زبان برنامه نویسی جاوا



همان طور که در تصویر(5) مشاهده می‌کنید شی که این متد برمیگرداند فقط به ویژگیها و رفتارهای کلاس Object دسرسی دارد و خبری از متدها و ویژگیهای اجزای گرافیکی خاصی نیست! حال عمل casting را به صورت زیر انجام میدهیم:

 

System.out. print ln(((JSpinner) e.getSource()));


•    این دستور منبع رویدادی که متد getSource برمی گرداند را به شی از کلاس JSpinner تبدیل می‌کند.
•    حالا سطح دسرسی منبع دریافت شده و تبدیل آن به JSpinner را در تصویر(6) مشاهده کنید:



jspinner در جاوا

•    همان طور که در تصویر(6) مشاهده می‌کنید با عمل casting به انبوهی از متدهای اجزای گرافیکی از جمله به متد getValue دسرسی داریم.
•    جالب است بدانید که خروجی دو دستور زیر شبیه به هم هستند اما در عمل متفاوت! :

System.out. print ln(e.getSource());
System.
out. print ln(((JSpinner) e.getSource()));
 
 

•    حال با صدا زدن متد getValue مقدار spinner را دریافت می‌کنیم:

System.out. print ln(((JSpinner) e.getSource()).getValue());
 

خب چطور بود؟! پیشنهاد میکنم هنوز مثال های بیشتری ببینید کسی با یکی دوتا مثال برنامه نویس نشده!

پیروز و موفق باشید


این جلسه آموزشی را می‌توانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)

آموزش آسان و ساده زبان برنامه نویسی جاوا
لینک دانلود


آموزش زبان جاواآموزش زبان جاوا


نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.


نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

0 نظر
هدر سایت
بلک فرایدی آکادمی جاواپرو،50% تخفیف روی تمامی دوره های جاوا تا 10 آذر 1403
مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو  [کلیک کنید]
آموزش پروژه محور اسپرینگ بوت(Spring Boot)-سیستم دانشگاه
ثبت نام در دوره آموزش Spring security
دوره معماری میکروسرویس ها (Microservices) با استفاده از Spring Boot و Spring Cloud
دوره پرتاب | آموزش پیش نیازهای برنامه نویسی
دوره آموزش مبانی زبان برنامه نویسی جاوا
دوره آموزش مفاهیم پیشرفته زبان برنامه نویسی جاوا
مقدمه ای از زبان برنامه نویسی جاوا(java)
آموزش زبان برنامه نویسی جاوا
آموزش گرافیک در زبان برنامه نویسی جاوا
آموزش مدیریت چیدمان گرافیکی در زبان جاوا
آموزش ساخت بازی دوبعدی در زبان جاوا
Collection ها در زبان برنامه نویسی جاوا
آموزش پروژه محور ساخت برنامه مدیریت بانک با JavaFX
نمونه پروژه های رایگان زبان جاوا
آموزش دیتابیس در زبان برنامه نویسی جاوا
نمونه مثال پایه ای زبان برنامه نویسی جاوا
نمونه مثال String در زبان برنامه نویسی جاوا
آموزش جامع برنامه نویسی JavaFX
آموزش ساخت برنامه آزمون تستی در JavaFX
آموزش برنامه نویسی سوکت در جاوا
آموزش ساخت برنامه دفترچه تلفن با JavaFX
آموزش ساخت ربات ساده تلگرام با زبان جاوا
آموزش ساخت برنامه ماشین حساب با JavaFX
آموزش ساخت برنامه ساده مدیریت ایمیل ها با JavaFX
دوره آموزش Spring Boot
سفارش انجام پروژه زبان برنامه نویسی جاوا(JAVA)
سفارش انجام پروژه برنامه نویسی متلب(MATLAB) با قیمت منصفانه و تحویل به موقع
سفارش انجام پروژه زبان برنامه نویسی سی شارپ (#C)
سفارش انجام پروژه زبان برنامه نویسی سی(C)
سفارش انجام پروژه زبان برنامه نویسی پایتون(Python)
سفارش انجام پروژه زبان برنامه نویسی PHP (پی اچ پی)
سفارش انجام پروژه زبان برنامه نویسی اسمبلی(Assembly)
سفارش انجام پروژه زبان برنامه نویسی جاوا اسکریپت (Javascript)
سفارش انجام پروژه هوش مصنوعی
سفارش انجام پروژه طراحی الگوریتم
سفارش انجام پروژه ساختمان داده ها
سفارش انجام پروژه مهندسی نرم افزار
سفارش انجام پروژه شبکه های کامپیوتری
سفارش انجام پروژه پایگاه داده: دیتابیس (database)
 سفارش انجام پروژه سیستم عامل
سفارش انجام پروژه پاورپوینت(PowerPoint)
سفارش انجام پروژه اکسل (Excel)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب
گفتگو را شروع کنید
مشاوره ،تدریس خصوصی و سفارش انجام انواع پروژه های برنامه نویسی