menusearch
javapro.ir

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

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

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

جلسه اول | معرفی 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

 

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

 

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

JProgressBar  در جاوا

•    مطمئنا با دیدن تصویر(1) JProgressBar برای ما آشنا خواهد بود، چرا که ان اجزای گرافیکی را در جاهای مختلف از کامپیوتر خود دیده ایم مثلا هنگام دانلود، فرآیند پیشرفت دانلود را با این ابزار گرافیکی نمایش می‌دهند.



• سازنده های پرکاربرد کلاس JProgressBar :

 

توصیفسازنده
ایجاد یک ProgressBar افقی بدون داشتن متنJProgressBar()
ایجاد یک ProgressBar افقی با مقدار minimum و maximum مشخصJProgressBar(int min, int max)
ایجاد یک ProgressBar با جهت یابی مشخص. منظور از جهت یابی حالت افقی یا عمودی بودن ProgressBar ما در برنامه است.
برای حالت افقی دستور ثابت SwingConstants.HORIZONTAL را جایگزین پارامتر orient می‌کنیم.
برای حالت عمودی دستور ثابت SwingConstants.VERTICAL
را جایگزین پارامتر orient می‌کنیم.
JProgressBar(int orient)
پارامترهای این سازنده ترکیبی از دو سازنده قبل است. یعنی ایجاد یک ProgressBar با جهت یابی و با مقدار minimum و maximum مشخصJProgressBar(int orient, int min, int max)




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

توصیفمتد
این متد برای تعیین نمایش یا عدم نمایش یک String در ProgressBar ما استفاده می‌شود.void setStringPainted(boolean b)
این متد برای مقداردهی رشته (متن) ProgressBar ما استفاده می‌شود.void setString(String s)

این متد برای تعیین جهت قرار گیری ProgressBar ما در برنامه استفاده می‌شود.
این جهت قرارگیری ممکن است افقی یا عمودی باشد.
برای حالت افقی دستور ثابت SwingConstants.HORIZONTAL را جایگزین پارامتر orientation می‌کنیم.
برای حالت عمودی دستور ثابت SwingConstants.VERTICAL

 

void setOrientation(int orientation)



مثال:

 

package javalike  ;

import javax.swing.*;

public class ProgressBarExample extends JFrame {
   JProgressBar jb;
   int i = 0;

   ProgressBarExample() {
       jb = new JProgressBar(0, 2000);
       jb.setBounds(40, 40, 160, 30);
       jb.setValue(0);
       jb.setStringPainted(true);
       add(jb);
       setSize(250, 150);
       setLayout(null);
   }

   public void iterate() {
       while (i <= 2000) {
           jb.setValue(i);
           i = i + 20;
           try {
               Thread. sleep (150);
           } catch (Exception e) {
           }
       }
   }

   public static void main(String[] args) {
       ProgressBarExample m = new ProgressBarExample();
       m.setVisible(true);
       m.iterate();
   }
}
 

خروجی: بعد از اجرای برنامه خروجی بصورت تصویر(2) خواهد بود:

روش ایجاد ProgressBar

در تصویر(2) ProgressBar از صفر شروع می‌شود و تا صد که پایان روند پیشرفت کار است متوقف می‌شود.

توضیحات:

 

JProgressBar jb;
 

•    یک شی از نوع JProgressBar تعریف می‌کنیم.

 

int i = 0

 

•    متغیر i نقش شمارنده ما را بازی می‌کند.

 

jb = new JProgressBar(0, 2000);
 
•    ایجاد یک شی از کلاس JProgressBar با مقدار minimum عدد صفر و مقدار maximum عدد دو هزار
 

•    این تعیین مقدار یعنی ProgressBar ما تنها بین 0 تا 2000 می‌تواند مقدار بگیرد.

 

jb.setBounds(40, 40, 160, 30);
 

•    تعیین مختصات و ابعاد ProgressBar ما در فریم.

1. add(jb);
2. setSize(250, 150);
3. setLayout(null);


1.    اضاف کردن شی ProgressBar خود به فریم برنامه


2.    تعیین اندازه فریم برنامه


3.    چون از طرح بندی خاصی در برنامه استفاده نکردیم مقدار این متد را null قرار می‌دهیم.

 

public class ProgressBarExample extends JFrame {

•    چون کلاس ما کلاس JFrameرا به ارث برده است دیگر نیازی به شی سازی از کلاس JFrame در برنامه خود نداریم به عبارتی کلاس ما خود یک JFrame حساب می‌شود چون فرزند کلاس JFrame هستش و تمام ویژگی ها و متدهای کلاس JFrame را به ارث برده و به آنها دسرسی دارد.

 

  public void iterate() {
       while (i <= 2000) {
           jb.setValue(i);
           i = i + 20;
           try {
               Thread. sleep (150);
           } catch (Exception e) {
           }
       }
   }


•    این متد را برای تعیین روند پیشرفت کار در ProgressBar ایجاد کرده ایم.


•    همان طور که ابتدا گفتیم متد setValue جریان پیشرفت کار در ProgressBar را مقداردهی می‌کند.


•    در اینجا یک شمارنده i داریم که از صفر شروع می‌شود و 20 تا 20 به مقدار آن اضاف می‌شود تا این که مقدار آن به 2000 برسد.

 

i=0,20,40,60,80,100,120,…………,2000

 
jb.setValue(i);

 

•    هر بار که حلقه تکرار می‌شود مقدار شمارنده i وارد متد setValue می‌کنیم.

 

•    ابتدای کار minimum مقدار ProgressBar خود را 0 و maximum مقدار ProgressBar خود را 2000 قرار دادیم. این یعنی بازه مقدارهایی که می‌توانیم به ProgressBar خود دهیم بین 0 تا 2000 است. حالا اگر شمارنده خود را طوری تنظیم کنیم که مقدار بین 0 تا 2000 را بشمارد و وارد متد setValue کند، جریان پیشرفت کار بین 0% تا 100% خواهد بود.چرا که از صفر تا 2000 را شمارنده ما پیموده و وارد متد setValue کرده است. حال اگر شمارنده ما صفر تا 1000 را بپیماید و وارد متد setValue کند جریان پیشرفت کار ProgressBar ما بین 0 تا 50 درصد خواهد بود چرا که تنها نصف بازه تعیین شده را شمارش و پیموده است.


•    پس تا اینجا فهمیدیم درصد پیشرفت جریان کار یک ProgressBar به شمارش شمارنده ما در بازه بین minimum تا maximum مقدار تعیین شده برای ProgressBar ما بستگی دارد، یعنی اگر مقدار شمارنده ما از minimum شروع شود و به مقدار آن در نهایت به maximum برسد یک فرآیند 0 تا 100 درصدی در ProgressBar خود شاهد خواهیم بود.

int i = 0;

•    مقدار شمارنده i وقتی وارد حلقه می‌شویم در ابتدا صفر است. از طرفی مقدار minimum ما نیز صفر است.این یعنی جریان روند ProgressBar ما از صفر درصد شروع می‌شود. چرا که ابتدا مقدار شمارنده و مقدار minimum ما برابر بوده است.

   
while (i <= 2000) {

•    از طرفی دیگر شرط حلقه ما این است که تا هنگامی که مقدار شمارنده i برابر 2000 نشده است دستورات درون بدنه حلقه را تکرار کن. این یعنی مقدار پیشرفت جریان ProgressBar تا 100 درصد خواهد بود چرا که مقدار شمارنده i در نهایت به 2000 که برابر مقدار maximum ما است طبق شرط حلقه خواهد رسید. اگر شرط به جای 2000 عدد 1000 بود مقدار پیشرفت جریان ProgressBar ما 50 درصد می‌شد چرا که ما نصف کل بازه 0 تا 2000 که ابتدا برای ProgressBar خود تعیین کرده ایم را پیموده ایم

i = i + 20;

 

•    مقدار شمارنده i به صورت 20 تا 20 تا افزایش می‌یابد.

 

•    تا اینجا از روند کلی که ProgressBar ما پیشرفت می‌کند آشنا شدیم. یعنی دونستیم که اگر شمارنده بازه ی min تا max مقدار ProgressBar را بپیماید یک جریان صفر تا 100 درصد خواهیم داشت.خب سوالی که پیش میاد اینه که هنگام نمایش ProgressBar ما اعدادی بین صفر تا صد نمایش داده می‌شود، که گاهی این اعداد یکی یکی و گاهی دو تا دو تا و یا 10 تا 10 تا تغییر میکنند تا این که به عدد 100 برسند، میخوایم بدونیم چطور این اتفاق می‌افتد؟


•    برای این که بدانیم جریان پیشرفت کار که از صفر درصد شروع می‌شود و به صد در صد خاتمه پیدا میکند، چندتا چندتا مقدار آن تغییر می‌کند از فرمول زیر استفاده می‌کنیم:
maximum بیشترین مقداری که می‌توانیم به ProgressBar خود دهیم.
vc مقداری که هربار به شمارنده اضاف می‌شود مثلا در مثال بالا این مقدار 20 است.

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

c تا c تا مقدار جریان پیشرفت ProgressBar ما تغییر خواهد کرد.


مثلا با توجه به مثال بالا:

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

•    پس یکی یکی به مقدار جریان پیشرفت کار اضاف می‌شود تا این که به صد برسیم.


•    ابتدا مقدار جریان پیشرفت کار بین 0 تا 100 درصد بود چرا که شمارنده از صفر تا 2000 را می‌پیمود. با محاسبه بالا می‌فهمیم که نمایش جریان پیشرفت بصورت زیر خواهد بود:

0% 1% 2% 3% 4% 5% 6% ………30% 31% 32% …………98% 99% 100%


همان طور که می‌بینید یکی یکی به مقدار جریان پیشرفت ProgressBar ما افزوده می‌شود تا به 100 درصد برسد.


دوستان این فرمول الکی ساختم!!! تنها برای درک بهتر برای تعیین مقدار پیشرفت کار یک ProgressBar اگه گیج تون میکنه کلا بیخیال توضیحات بشید و مثال رو چندبار ببینید و برای خودتون مقادیر رو تغییر بدید راحت روش کار دستتون میاد.
حال اگر شمارنده ما به جای دستور زیر

i = i + 20;
 
بصورت زیر تغییر کند :

 

i = i + 40;
 


آموزش فارسی جاوا

با محاسبه بالا می‌فهمیم که نمایش جریان پیشرفت بصورت زیر خواهد بود:

 

0% 2% 4% 6% 8% 10% 12% ………30% 32% 34% 36% …………94% 96% 98% 100%


همان طور که می‌بینید دو تا دو تا به مقدار جریان پیشرفت ProgressBar ما افزوده می‌شود تا به 100 درصد برسد.


بازم تکرار میکنم اگر توضیحات بالا گیج کننده بود اصلا نگران نباشید! توضیحات رو بی خیال بشید و سراغ مثال و تغییر مقادیر مثال بروید یواش یواش دستتون میاد!

 

 

try {
               Thread. sleep (150);
           } catch (Exception e) {
           }

 

 

•    با هربار تغییر شمارنده یک مکث 150 میلی ثانیه انجام می‌دهیم، چرا ؟! تا نمایش جریان پیشرفت ProgressBar را بتونیم ببینیم بدون مکث کردن آنقدر سریع انجام میشه که دیگه تا برنامه رو اجرا کردید می‌بینید که پیشرفت کار 100 درصد شده است!!

 
 
1.    ProgressBarExample m = new ProgressBarExample();
2.    m.setVisible(true);
3.    m.iterate();
 

1.    از کلاس خود شی ایجاد کرده ایم.
2.    با شی ایجاد شده از کلاس خود این متد را صدا زده ایم. این متد باعث میشه تمام اجزای گرافیکی ما نمایش داده شود.
3.    خب برای اجرای روند پیشرفت کار این متد را صدا زده ایم.

•    خب میدونم شاید گیج شده اید!!! اون توضیحات رو برای روشن شدن مفاهیم مثال ها گفتم اگر اوضاع رو بهتر نکرده فقط مثال، مثال و مثال ببنید و کار کنید!!!

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


 این جلسه آموزشی را می‌توانید بصورت کتاب الکترونیکی (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)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب
گفتگو را شروع کنید
مشاوره ،تدریس خصوصی و سفارش انجام انواع پروژه های برنامه نویسی