جستجو
۱۳۹۶/۳/۲۰ شنبه
(0)
(0)
جلسه پانزدهم - کلاس JProgressBar در جاوا
جلسه پانزدهم - کلاس JProgressBar در جاوا
کلاس  JProgressBar برای نمایش پیشرفت کار در برنامه استفاده می شود. برای درک بهتر از این اجزای گرافیکی در جاوا تصویر(1) را مشاهده کنید:

JProgressBar  در جاوا

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


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

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

متدهای JProgressBar


 
 
مثال:

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 نظر
طراحی شده توسط شرکت طراحی سایت و سایت ساز آنلاین یوتاب - فروشگاه ساز اینترنتیطراحی شده توسط شرکت طراحی سایت و سایت ساز آنلاین یوتاب - فروشگاه ساز اینترنتی