آموزش جاوا (فصل ۱5)

مقدمه ای بر طراحی رابط گرافیکی کاربر با استفاده از زبان برنامه نویسی جاوا


تا این قسمت از آموزش سعی ما بر این بوده تا مفاهیم تئوریک زبان محبوب برنامه نویسی جاوا را مورد بررسی قرار داده و خروجی برنامه های خود را در پنجره Console نرم افزار اکلیپس مشاهده کنیم اما این در حالی است که بسیاری از کابران کامپیوتر در مواجه با یک نرم افزار یا اپلیکیشن انتظار دارند تا با پنجره ای مواجه شوند که بدون نیاز به وارد کردن داده ها در پنجره ای شبیه به Command Line و غیره به سادگی بتوانند روی دکمه ای کلیک کنند، درگ و دراپ کنند، داده های خود را وارد فیلدهای مربوطه کنند و بسیاری امکانات دیگر.

برای این منظور برای هرچه کاربردی تر کردن برنامه های جاوای خود نیاز است تا با چیزی تحت عنوان GUI بیشتر آشنا شویم. به طور کلی منظور از GUI اصطلاح Graphical User Interface به معنی “رابط گرافیکی کاربر” است (به خاطر داشته باشیم که GUI را به صورت “جی یو آی” تلفظ کنیم). این رابط گرافیکی همان پنجره هایی است که در سیستم عامل های مختلف به منظور سهولت استفاده کاربر در نظر گرفته شده اند. به عبارت دیگر GUI به شکل های متنوعی می تواند نمود پیدا کند که از آن جمله می توان به دکمه، اسلایدر، جدول، فرم، فیلد و غیره اشاره نمود. علاوه بر این با استفاده از رابط های گرافیکی کاربر، برنامه نویس به سادگی خواهد توانست نیاز کاربران به نوشتن کد، وارد کردن داده ها به صورت دستی و همچنین استفاده از پنجره هایی مثل MS-DOS را مرتفع ساخته و کاربر صرفاً با کلیک بر روی یک دکمه دستور مد نظر خود را به سیستم ارسال نماید.

در زبان برنامه نویسی جاوا به منظور طراحی GUI می بایست از API های مخصوص این کار استفاده نمود. در واقع کلاس هایی که تحت عنوان Abstract Window Toolkit یا به صورت خلاصه AWT شناخته می شوند به راحتی این امکان را به برنامه نویس می دهند تا بتواند محیطی گرافیکی برای برنامه خود ایجاد کند.

استفاده از کلاس های AWT اگرچه قابلیت های بسیاری را در اختیار برنامه نویسان قرار می دهد اما این نکته را به خاطر داشته باشیم که این کلاس ها دارای یک نقطه ضعف بزرگ هستند و آن اینکه ظاهر برنامه ای که با استفاده از این کلاس ها طراحی می شوند در پلتفورم ها یا سیستم عامل های مختلف می تواند تا حدودی متفاوت باشد. به عنوان مثال پنجره ای که با استفاده از این کلاس ها در محیط ویندوز نمایش داده می شود تا حدودی در محیط مکینتاش متفاوت خواهد بود. علاوه بر این نحوه تعامل کاربر نیز در سیستم عامل های مختلف با برنامه های طراحی شده با کلاس های AWT می توانند تا حدودی متفاوت باشد. به عبارت دیگر برنامه ای که ما با استفاده از این کلاس ها طراحی می کنیم در هر سیستم عاملی که اجرا شود با استفاده از ابزارهای گرافیکی همان سیستم عامل تفسیر شده و در نهایت در قالبی که هماهنگ با رابط های گرافیکی آن سیستم عامل است به نمایش در می آید. نقطه بزرگ همین جا خود را نمایان می سازد چرا که برنامه ای یکسان در مثلاً محیط ویندوز یکجور نمایش داده می شود در حالی که در محیط مثلاً مکینتاش با استفاده از ابزارهای این سیستم عامل به گونه ای دیگر به نمایش در می آید و همین مسئله محبوبیت کلاس های AWT را تحت الشعاع قرار داده است. برای رفع این مشکل شرکت اوراکل API یی تحت عنوان Swing را به زبان برنامه نویسی جاوا اضافه نمود که در ادامه بیشتر با آن آشنا خواهیم شد.

در سال 1997 شرکت سان مایکروسیستمز –که بعدها توسط شرکت بزرگ اوراکل خریداری شد- API یی تحت عنوان Java Foundation Classes که امکانات طراحی رابط گرافیکی را به زبان جاوا اضافه نمود را معرفی کرد که بعدها به Swing تغییر نام داد.

در زبان برنامه نویسی جاوا Swing -مجموعه ای از کلاس های از پیش تعریف شده است که بسیاری از امکانات مورد نیاز برای ساخت GUI را برای برنامه نویس فراهم می آورد- این امکان را به برنامه نویس می دهد تا بتواند برنامه های کاربردی با استفاده از دکمه، اسلایدر، باکس های مختلف و غیره طراحی کند.

نقطه قوت این کلاس ها نسبت به AWT این است که بدون توجه به پلتفورم سعی می کنند ظاهر یکسانی را در سیستم عامل های مختلف به نمایش بگذراند و علت این مسئله هم آن است که این کلاس ها کاملاً با زبان جاوا نوشته شده اند و به هیچ وجه به سیستم عامل خاصی برای نحوه نمایش GUI تکیه نمی کنند و برای همین است که یک پنجره در هر سیستم عاملی ظاهر یکسان خواهد داشت. علاوه بر این کلاس های Swing از انعطاف پذیری بیشتری برخوردارند و نسبت به کلاس های AWT از ویژگی های به مراتب پیشرفته تری برخوردارند که از آن جمله می توان به جدول، فرم، لیست، اسکرول و غیره اشاره کرد.

از قابلیت های منحصر به فرد Swing به شخصی سازی کلاس های این API می توان اشاره کرد. در واقع برنامه نویس بسته به نیاز خود و خصوصیات پروژه ای که روی آن کار می کند به سادگی خواهد توانست رنگ، حاشیه، پس زمینه و بسیاری از ویژگی های کلاس های Swing را اصطلاحاً Customize کند تا بتواند برنامه ای منحصر به فرد طراحی کند.

یکی دیگر از قابلیت های خاص Swing تکیه آن بر Run-time است. به عبارت دیگر از آنجا که کلاس های این API در حین اجرا اعمال می شوند، حتی کاربری که با برنامه طراحی شده توسط ما کار می کند به سادگی خواهد توانست مثلا رنگ پس زمینه برنامه را تغییر داده و از این پس برنامه را با رنگ خاصی مشاهده کند (البته منوط به این است که برنامه نویس چنین امکانی را برای کاربران برنامه خود فراهم ساخته باشد).

در اینجا نیاز است تا با اصطلاح Look and Feel آشنا شویم. در برنامه نویسی به روشی که یک برنامه در سیستم عامل های مختلف نمایش داده شده و همچنین نحوه تعامل کار با نرم افزار Look and Feel گفته می شود (لازم به ذکر است که در اینجا واژه Look را می بایست به معادل “ظاهر” و واژه Feel را به معادل فارسی “عملکرد” ترجمه کنیم).

از آنجا که کلاس های AWT برای آنکه نمود خارجی پیدا کنند به کلاس های سیستم عامل وابسته هستند، از این رو می توان اصطلاح Heavyweight یا “سنگین” را به کلاس های AWT اطلاق کرد. به عبارت دیگر Look and Feel برنامه هایی که با استفاده از AWT طراحی می شوند در سیستم عامل های مختلف متفاوت است. در عوض اصطلاح Lightweight یا “سبک” را به API های Swing اطلاق می کنند چرا که بدون تکیه بر Toolkit های گرافیکی سیستم عامل ها و صرفاً با تکیه بر خود زبان جاوا نمایش داده می شوند و از همین رو است که یک برنامه گرافیکی نوشته شده با Swing در جاوا در سیستم عامل های مختلف به شکل واحدی نمایش داده می شود. به عبارت دیگر Look and Feel برنامه های نوشته شده با Swing در سیستم عامل های مختلف تا حدود زیادی یکسان است.

با ظهور Swing اکثر برنامه نویسان دیگر توجه زیادی به کلاس های AWT نمی کنند اما به خاطر داشته باشیم که برخی از کلاس های Swing هستند که از کلاس های AWT ارث بری می کنند. به عبارت دیگر AWT کاملاً “نمرده” است!

آموزش نصب پلاگین WindowBuider در نرم افزار اکلیپس


به منظور ایجاد رابط گرافیکی کاربر در زبان برنامه نویسی جاوا دو راه کار پیش رو خواهیم داشت: راه کار اول این است که به صورت دستی اقدام به نوشتن کدهای مرتبط با کلاس های Swing کرده و یا با استفاده از راه کار دوم اقدام به نصب پلاگینی روی محیط برنامه نویس اکلیپس کنیم که بخش قابل توجهی از کار را بدون نیاز به کدنویسی برایمان انجام خواهد داد.

واقعیت امر این است که هر کدام از این روش ها مزایا و معایب خاص خود را دارا است که در ادامه بیشتر با آن ها آشنا خواهیم شد. ساخت GUI با استفاده از زبان برنامه نویسی جاوا با کدنویسی و بدون استفاده از ابزارهایی که در اختیار برنامه نویس قرار دارد از این مزیت برخوردار است که کلاس ها، متدها و … ملکه ذهن برنامه نویس خواهند شد چرا که دائماً می بایست آن ها را به صورت دستی وارد ویرایشگر متن کند. نقطه ضعف این روش – البته از دید برنامه نویسان مبتدی – این است که این کار بسیار زمان بر خواهد بود و زمانی که توسعه نرم افزار از ما خواهد گرفت را به طور قابل توجهی افزایش خواهد داد. در مقابل با استفاده از پلاگینی که برای طراحی رابط گرافیکی کاربر در محیط برنامه نویسی اکلیپس در نظر گرفته شده است زمان کدنویسی به طرز قابل توجهی کاهش خواهد یافت اما این در حالی است که ممکن است در دراز مدت از ما یک برنامه نویس “تنبل” بسازد.

برای روشن شدن این مسئله مثالی را یاد آور می شویم. نرم افزاری همچون Adobe Dreamweaver برای طراحی سایت توسط شرکت بزرگ ادوبی ساخته شده است. این نرم افزار کمک شایانی برای کسانی است که می خواهند به سرعت یک وب سایت به راه اندازند اما این در حالی است که استفاده دراز مدت از این نرم افزار موجب می گردد که طراح وب خیلی از نحوه قرارگیری تگ های اچ تی ام ال در کنار یکدیگر سر در نیاورده و چنانچه روزی لازم شود که وب سایت خود را با استفاده از نرم افزاری همچون Notepad ویرایش کند سر در گم خواهد شد.

از اینرو به برنامه نویسان مبتدی توصیه می شود که تا حد ممکن در ابتدای راه آموزش کدها را به صورت دستی وارد کنند تا ملکه ذهن ایشان شده و زمانیکه به یک برنامه نویس حرفه مبدل شدند، برای سرعت بخشیدن به انجام پروژه های خود، به استفاده از ابزارهایی که در این آموزش قصد داریم معرفی کنیم بپردازند.

زمانیکه محیط برنامه نویسی اکلیپس را روی سیستم عامل خود نصب می کنیم، این نرم افزار امکانات فوق العاده زیادی را در اختیار ما به عنوان یک برنامه نویس قرار می دهد. خبر خوشحال کننده این است که ما به هیچ وجه به پلاگین های از پیش تعریف شده برای اکلیپس محدود نبوده و خواهیم توانست پلاگین های رایگان بسیاری که برای این محیط برنامه نویسی توسعه داده شده اند را مورد استفاده قرار دهیم. یکی از این پلاگین ها WindowBuider به معنی “پنجره ساز” است که می توان نصب کرد و مورد استفاده قرار داد. با استفاده از این پلاگین به سهولت خواهیم توانست پنجره های کاملاً گرافیکی برای نرم افزارهایی که قرار است توسعه دهیم ایجاد کنیم.

به منظور نصب این پلاگین ابتدا می بایست مطابق با تصویر زیر عمل نماییم:

همانطور که می بینیم با کلیک بر روی منوی اصلی Help روی گزینه Install New Software کلیک می کنیم و با پنجره ای با صورت زیر مواجه خواهیم شد:

حال روی دکمه Add به معنی “اضافه کردن” کلیک می کنیم و پنجره زیر باز خواهد شد:

همانطور که در تصویر فوق ملاحظه می شود در بخش Name نامی برای این پلاگین در نظر می گیریم که این نام دلخواه است اما بهتر آن است که این نام با نام اصلی پلاگین یکی باشد از اینرو نام WindowBuider را انتخاب می کنیم. در بخش Location می بایست URL یی که به این پلاگین روی وب منتهی می شود را وارد کنیم که http://download.eclipse.org/windowbuilder/WB/integration/3.8/ است (URL جایگزین هم http://dl.google.com/eclipse/inst/d2wbpro/latest/3.7 می باشد که در صورت مواجه شدن با هر گونه مشکل در استفاده از URL فوق می توان از این URL استفاده کرد. چنانچه هر دو URL کار نکردند می توان به آدرس http://www.eclipse.org/windowbuilder در خود سایت اکلیپس مراجعه نمود و یا در موتورهای جستجو عبارت WindowBuilder Plugin for Eclipse را جستجو کرد).

به خاطر داشته باشیم که به هیچ وجه http:// را از ابتدای آدرس حذف نکنیم که حتماً در دانلود کردن پلاگین با مشکل مواجه خواهیم شد.

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

در این پنجره همانطور که در کادر مستطیل نمایش داده شده است کلیه پلاگین های مرتبط نمایش داده شده اند. حال می توانیم روی دکمه Next کلیک کنیم. در ادامه از ما خواسته می شود تا توافق نامه استفاده از پلاگین را تایید کرده و در نهایت دانلود پلاگین به صورت خودکار آغاز خواهد شد و پس از اجرای مجدد محیط برنامه نویسی اکلپیس به این پلاگین دسترسی خواهیم داشت.

حال قصد داریم تا یک پنجره بسیار ساده با استفاده از پلاگین WindowBuider ایجاد کنیم. برای این منظور طبق آموزش های گذشته یک پروژه جدید جاوا تحت عنوان MyWindow به معنی “پنجره من” ایجاد می کنیم:

پس از نصب پلاگین WindowBuider گزینه های مرتبط با این پلاگین در اختیار برنامه نویس قرار می گیرند:

همانطور که در تصویر فوق مشخص است آیکانی که با فلش آبی رنگ مشخص شده را کلیک کرده و از پنجره ای که باز می شود روی گزینه Swing کلیک می کنیم. از آنجا که قصد داریم یک پنجره ساده ایجاد کنیم پس روی گزینه JFrame کلیک می کنیم:

پنجره جدید باز می شود که در آن ابتدا می بایست نامی را برای این پنجره جدید در نظر بگیریم که در این مثال نام test را انتخاب کرده ایم و سپس روی دکمه Finish کلیک می کنیم:

می بینیم که کدهای زیادی به صورت خودکار وارد پروژه می شوند اما این در حالی است که این پروژه دارای ایرادی است. با گشت زنی در کدها می بینیم که دوره متد run نقطه چین قرار گرفته است. با قرار دادن نشانگر موس خود روی این دستور پنجره ای به صورت فوق باز خواهد شد که به ما می گوید می بایست این متد را Override کرد (برای آشنایی با مفهوم Override به آموزش های پیشین مراجعه نمایید).

پس از کلیک بر روی گزینه Add missing @Override annotation می بینیم که اشکال برنامه هم از بین می رود.

import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
public class test extends JFrame {
    private JPanel contentPane;
    /**
    * Launch the application.
    */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    test frame = new test();
                    frame.setVisible(true);
                    } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
    /**
    * Create the frame.
    */
    public test() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);
    }
}

پس از ذخیره کردن تغییرات و زدن دکمه Run می بینیم که برنامه به درستی اجرا شده و اولین برنامه دسکتاپ ما هم ایجاد می گردد:



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


برای توسعه اپلیکیشن با استفاده از زبان برنامه نویسی جاوا از IDE هایی گوناگونی می توان استفاده نمود. تا این مرحله از آموزش از نرم افزار رایگان، متن باز، قابل اعتماد و قدرتمند اکلیپس برای توسعه نرم افزارهای جاوا استفاده نموده ایم و این در حالی است که در این آموزش قصد داریم یک IDE قدرتمند دیگر را نیز معرفی کنیم.

نرم افزار Netbeans علاوه بر توسعه جاوا، برای زبان های دیگری همچون جاوا اسکرپیت، اچ تی ام ال 5، پی اچ پی، سی، سی پلاس پلاس، پایتون و حتی توسعه اپلیکیشن برای موبایل و … مورد استفاده قرار می گیرد.

نت بینز توسط خود زبان برنامه نویسی جاوا نوشته شده و برای سیستم عامل های مختلفی همچون ویندوز، لینوکس، مک و غیره بهینه شده است اما این به شرطی است که JDK جاوا روی این سیستم ها نصب باشد.

در حقیقت علت آنکه در این مرحله از آموزش زبان برنامه نویسی جاوا اقدام به معرفی این محیط برنامه نویسی یکپارچه می کنیم این است که نت بینز همچون محیط برنامه نویسی اکلیپس ابزارهای قدرتمندی در اختیار توسعه دهنده می گذارد تا بتواند اقدام به طراحی رابط گرافیک کاربر یا همان GUI کند (GUI مخفف واژگان Graphical User Interface می باشد).

نرم افزار نت بینز همانند اکلیپس یک نرم افزار رایگان است و شاید از اینجا بتوان به برتری این نرم افزار نسبت به مابقی IDE ها پی برد که شرکت اوراکل که متولی توسعه زبان برنامه نویسی جاوا است این نرم افزار را تحت پوشش خود قرار داده و آن را توسعه می دهد.

حال ممکن است این سوال برای مخاطبین نردبان پیش بیاد که چرا با اینکه نت بینز از یک برتری نسبی –البته از دید اوراکل- نسبت به اکلیپس برخوردار است در سری آموزش های برنامه نویسی جاوا از ابتدا روی نت بینز تمرکز نشده است.

در پاسخ به سوال فوق بایستی گفت از آنجا که SDK توسعه اپلیکیشن برای سیستم عامل اندروید توسط گوگل برای اکلیپس طراحی شده است و می توان گفت که تا 100 درصد تضمین شده است که هیچ گونه باگی ندارد، سعی بر این بوده که آموزش زبان جاوا هم در محیط اکلیپس صورت پذیرد تا برنامه نویسان که تمایل به فراگیری هر دو دوره دارند با کمترین شیب منحنی یادگیری مواجه شوند.

چنانچه بخواهیم مزایا و معایت هر یک از IDE ها را مطرح کنیم بایستی گفت که سرعت اجرای اکلیپس بیشتر است ما محیط نت بینز ساده تر است، برای هر دو پلاگین های رایگان بسیاری نوشته شده است اما این در حالی است که برای توسعه اندروید، SDK این سیستم عامل با اکلیپس سازگاری بهتری دارد، نت بینز از ساپورت بهتری برای دیتابیس ها برخوردار است و …

به هر حال نرم افزار اکلیپس بیشتر مورد استفاده قرار می گیرد و در میان برنامه نویسان از محبوبیت بیشتری برخوردار است اما فراموش نکنیم که یک IDE دیگر تحت عنوان Intellij IDEA که در دو نسخه رایگان و تجاری عرضه می شود هم به عنوان رقیبی جدی برای هر دو IDE پیشین محسوب می شود. این IDE نه تنها هم از زبان های بسیاری من جمله جاوا پشتیبانی می کند بلکه برای توسعه اپلیکیشن اندروید هم مورد استفاده قرار می گیرد. در یک کلام این IDE هم بسیار قدرتمند و هم بسیار حرفه ای است.
حال ببنیم چرا بایستی برای توسعه نرم افزارهای جاوا که برای دسکتاپ طراح می شوند با نت بینز آشنا شویم. در یک کلام بایستی گفت محیط ساده نرم افزار، پلاگین های سبک و رایگان و … این امکان را به ما می دهند تا به سادگی بتوانیم اقدام به توسعه نرم افزار دسکتاپ با استفاده از زبان برنامه نویسی جاوا نماییم.
برای دانلود نرم افزار نت بینز ابتدا می بایست وارد سایت https://netbeans.org شویم:


همانطور که در تصویر بالا مشخص شده است می بایست روی گزینه Download کلیک کنیم:

پس از کلیک روی گزینه Download با صفحه ای مواجه خواهیم شد که در آن نسخه های متفاوتی از نرم افزار نت بینز به صورت رایگان برای دانلود قرار گرفته اند. در حقیقت تفاوت در نسخه های موجود مرتبط با تفاوت در زبان هایی است که پشتیبانی می کنند به طوریکه نسخه ای که در تصویر فوق با یک بیضی آبی رنگ مشخص شده است در برگیرنده تمامی امکانات نت بینز است اما از آنجا که در این سری از آموزش ها تمرکز فقط روی زبان برنامه نویسی جاوا است، نسخه Java SE که حجم به مراتب کمتری نسبت به نسخه کامل دارد را دانلود می کنیم (نسخه ای که با یک فلش آبی رنگ در تصویر مشخص شده است):

همانطور که می بینیم پس از نصب نت بینز با محیطی کاملاً ساده در عین حال قدرتمند مواجه خواهیم شد. این نسخه از نت بینز حاوی کلیه پلاگین ها مورد نیاز برای ساخت Swing است و بر خلاف اکلیپس نیازی به دانلود پلاگین نخواهیم داشت اما چنانچه بخواهیم پلاگین خاصی را دانلود کنیم می بایست مطابق با تصویر زیر پیش رویم:

از منوی اصلی Tools روی گزینه Plugins کلیک می کنیم و با پنجره ای به صورت زیر مواجه خواهیم شد:

همانطور که در تصویر فوق می بینیم روی Tab دوم تحت عنوان Available Plugins به معنی “پلاگین های در دسترس” کلیک می کنیم، هر پلاگینی را که تمایل به دانلود داشتیم تیک می زنیم (در این مثال پلاگین مربوط به توسعه وب اپلیکیشن های پی اچ پی تیک خورده است) و در نهایت همانطور که در تصویر فوق نشان داده شده است روی دکمه Install کلیک می کنیم و پلاگین دانلود و نصب خواهد شد. در آموزش بعد خواهیم دید که به چه شکل می توان یک نرم افزار مقدماتی تحت دسکتاپ با استفاده از نرم افزار نت بینز نوشت.

نحوه ی ساخت یک رابط گرافیکی کاربر با استفاده از نرم افزار نت بینز


همانطور که در آموزش جلسه گذشته قول دادیم، در این قسمت قصد داریم تا ببینیم که به چه شکل با استفاده از محیط برنامه نویسی نت بینز می توان یک GUI طراحی کرد.

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

سپس روی گزینه New Project کلیک می کنیم و پنجره جدیدی نمایش داده می شود:

حال ابتدا از منوی سمت چپ گزینه Java را انتخاب نموده و از منوی سمت راست گزینه Java Application را انتخاب می کنیم و روی گزینه Next کلیک می کنیم:

در فیلد مربوط به Project Name نامی دلخواه همچون 6thSession به معنی “جلسه شصت و چهارم” را انتخاب کرده و در بخش Project Location می بایست محلی برای ذخیره سازی پروژه مشخص کرد که در این آموزش دسکتاپ انتخاب شده است. چنانچه گزینه Create Main Class به معنی “یک کلاس اصلی بساز” را فعال کنیم، محیط برنامه نویسی نت بینز کلاس اصلی برنامه را تحت عنوانی که برایش انتخاب می کنیم خواهد ساخت اما در این آموزش می بایست تیک این گزینه را برداشت. در نهایت پس از پر کردن فیلدهای مربوطه می توانیم روی گزینه Finish کلیک کنیم:

با کلیک کردن روی گزینه Finish می بینیم که پروژه ما ایجاد شده و مجدد وارد محیط اصلی نت بینز می شویم:

برای ساخت یک رابط گرافیکی ساده به Component یی تحت عنوان JFrame نیاز داریم. در واقع کاری که JFrame انجام می دهد این است که یک پنجره برای قرار گیری چیزهای مختلفی همچون دکمه، فیلد و … ایجاد می کند (در آموزش های آتی پیرامون نام نسبتاً عجیب JFrame بیشتر صحبت خواهیم کرد).

برای این منظور نشانگر موس خود را روی فولدر Source Package قرار داده و راست کلیک می کنیم:

سپس از گزینه New روی گزینه Other کلیک می کنیم و با پنجره ای به صورت زیر مواجه خواهیم شد:

همانطور که در تصویر فوق مشاهده می شود از پوشه Swing GUI Forms گزینه JFrame Form را انتخاب نموده و روی دکمه Next کلیک می کنیم:

در این پنجره در بخش Class Name می بایست نامی برای کلاس خود انتخاب کنیم که در این مثال نام MyWindow به معنی “پنجره من” انتخاب شده است. پیشنهاد می شود برای Component هایی همچون JFrame و غیره از یک نام دیگری برای پکیج استفاده شود برای همین منظور در فیلد مرتبط با Package نامی دلخواه همچون mywindowpackage را تایپ می کنیم و در نهایت روی دکمه Finish کلیک می کنیم:

همانطور که در تصویر فوق با یک فلش نشان داده شده است، کلاس جدیدی که ایجاد کردیم باز شده و داخل آن یک باکس یا بهتر بگوییم یک پنجره خاکستری رنگ وجود دارد. منویی تحت عنوان Palette به صورت خودکار باز می شود که در تصویر فوق با یک مستطیل آبی رنگ نشان داده شده است که حاوی کلیه عناصر بصری است که می توان روی این پنجره قرار داد.

چنانچه بخواهیم به فایل ها و فولدرهای پروژه خود نگاهی بیندازیم می بایست مطابق با تصویر زیر پیش رویم:

می بینیم که با کلیک کردن روی Tab یی تحت عنوان Projects که در تصویر فوق با یک بیضی عمودی نشان داده شده است به کلیه فایل ها و فولدرهای پروژه خود دست پیدا خواهیم کرد.

علاوه بر این می توان Component هایی همچون JFrame را در دو حالت Source و Design نمایش داد. منظور از Source این است که کدهای این کلاس نمایش داده شوند و منظور از Design این است که نمود عینی کدهای جاوا به نمایش درآیند. برای این منظور همانطور که در تصویر زیر نشان داده شده است با کلیک بر روی هر یک از Tab های Source و Design می توان به چنین قابلیتی دست یافت:

می بینیم که به محض کلیک کردن روی Tab مرتبط با Source کلیه کدهای JFrame را مشاهده خواهیم کرد.

برای ادامه طراحی رابط گرافیکی خود مجدد روی Tab مربوط به Design کلیک می کنیم و از منوی Palette و قسمت Swing Containers یک JPanel به صورت Drag & Drop کشیده و روی JFrame قرار می دهیم:

لازم به ذکر است چنانچه منوی Palette باز نباشد می توان از منوی اصلی Window روی گزینه IDE Tools کلیک کرده سپس روی گزینه Palette کلیک نماییم و یا دکمه Ctrl+Shift+8 را به طور هم زمان فشار دهیم:

حال با کشیدن JPanel سعی می کنیم آن را طوری تنظیم کنیم که از هر چهار طرف میزان باشد و در وسط JFrame قرار گیرد (به خاطر داشته باشیم نرم افزار نت بینز در این مرحله یکسری Guide یا راهنمای شبرنگ در اختیار طراح قرار می دهد که با استفاده از آن ها به سادگی می توان JPanel را کاملاً در وسط قرار داد و حاشیه آن را از هر چهار طرف تنظیم نمود):

حال اگر در این مرحله روی صفحه سفیدی که در کنار JFrame قرار دارد کلیک کنیم، خواهیم دید که JPanel یی که ایجاد کردیم غیر قابل روئیت می شود:

در واقع علت این مسئله آن است که ما هیچ Border یا “حاشیه ای” برای این JPanel در نظر نگرفته ایم. برای این منظور نشانگر موس خود را روی JFrame قرار می دهیم و با حرکت دادن نشانگر موس خواهیم دید که یک خط فرضی نشان داده می شود. به محض مشاهده این خط فرضی روی آن کلیک کرده و JPanel مجدد انتخاب شده و نشان داده می شود:

در آموزش قسمت بعد خواهیم دید که به چه شکل می توان Border یی برای این JPanel در نظر گرفت.

آشنایی با JPanel در طراحی رابط گرافیکی کاربر در زبان جاوا


در ادامه آموزش قبل، در این قسمت قصد داریم ببنیم که به چه شکل می توان برای JPanel یی که ایجاد کردیم یک Border اختصاص دهیم. برای این منظور می بایست ابتدا پنجره Properties را باز نماییم:

همانطور که در تصویر فوق ملاحظه می شود از منوی اصلی Window روی گزینه IDE Tools کلیک کرده سپس روی گزینه Properties کلیک می نماییم:

در واقع با انتخاب هر Component یا چیزی که روی UI قرار می گیرد، خصوصیات آن شیئ در این پنجره نمایش داده شده و می توان با استفاده از این پنجره آن ها را تغییر داد. برای این منظور ابتدا با نشانگر موس خود JPanel را انتخاب کرده و سپس تنظیمات آن را در پنجره Properties مورد بررسی قرار می دهیم:

همانطور که در تصویر فوق مشخص است، در پنجره Properties گزینه ای وجود دارد تحت عنوان border که این وظیفه را دارا است تا تنظیمات مربوط به حاشیه این JPanel را تعیین کند. برای ویرایش کردن border همانطور که در تصویر فوق می بینیم روی دکمه مقابل آن کلیک می کنیم و با پنجره جدیدی به صورت زیر مواجه خواهیم شد:

در بخش Available Borders به معنی “حاشیه های موجود” می توان از میان گزینه های موجود هر کدام که تمایل داشتیم را انتخاب کنیم که در این مثال گزینه آخر تحت عنوان Titled Border را انتخاب کرده ایم. در بخش پایین تحت عنوان Properties کلیه تنظمات Border یی که در بخش بالا انتخاب کردیم نمایش داده می شود که می توان بسته به نیاز خود آن ها را تغییر داد. به طور مثال گزینه Title عنوانی را برای این پنل مشخص می کند که در اینجا عنوان This Is A JPanel را انتخاب کرده ایم. گزینه Color رنگی را برای این Border انتخاب می کند که در اینجا رنگی مایل به قرمز را انتخاب کرده ایم. در گزینه مرتبط با Font می توان نوع، اندازه و ضخامت فونت را نیز مشخص کرد. در بخش Justification هم می توان جایگاه قرار گیری عنوان پنل را تنظیم کرد و از آنجا که می خواستیم عنوان پنل در سمت چپ نمایش داده شود گزینه left را انتخاب کرده ایم (لازم به ذکر است که به همین منوال می توان دو گزینه باقیمانده تحت عنوان Position و Border را تنظیم نمود). در نهایت روی دکمه OK کلیک می کنیم:

می بینیم که کلیه تنظیمات اعمال شده اند.

در ادامه قصد داریم تا سه JLabel را به پنجره خود اضافه کنیم. برای این منظور از پنجره Palette روی گزینه Swing Controls کلیک کرده و سه بار گزینه Label را روی JFrame می کشیم:

می بینیم که JLabel ها به صورت خودکار نامگذاری می شوند. حال برای آنکه عنوان آن ها را عوض کنیم صرفاً نیاز است تا دو بار روی هر کدام از آن ها کلیک کنیم:

می بینیم که با دو بار کلیک کردن روی JLabel متن آن قابل ویرایش خواهد شد. کاری که قرار است انجام دهیم این می باشد که عنوان JLabel اول را بگذاریم First Number و عنوان دومی را Second Number و عنوان سومی و آخرین مورد را Result به معنی “نتیجه” قرار خواهیم داد:

به خاطر داشته باشیم به همان منوال که توانستیم خصوصیات JPanel را با استفاده از پنجره Properties تغییر دهیم، به همان صورت خواهیم توانست خصوصیاتی همچون نوع فونت، اندازه فونت، رنگ و غیره را نیز برای تک تک JLabel ها تغییر دهیم اما به خاطر طولانی نشدن آموزش از این کار خودداری خواهیم کرد.

حال برای هر یک از JLabel ها می بایست یک فیلد قرار دارد که کاربر بتواند عددی داخل آن ها تایپ کند. برای این منظور می بایست از چیزی تحت عنوان TextField استفاده کرد:

همانطور که در تصویر فوق می بینیم از Tab مربوط به Swing Controls گزینه TextField را به تعداد سه بار روی JFrame کشیده و رها می سازیم. اکنون با دو بار کلیک کردن روی هر یک از TextField ها متن داخل آن ها را حذف می کنیم:

توجه داشته باشیم که به محض پاک کردن متن داخل TextField ها اندازه آن ها کاهش می یابد. برای بازگردادن اندازه به حالت اول به سادگی خواهیم توانست با نشانگر موس TextField را گرفته و به اندازه ای دلخواه خود بکشیم:

در ادامه نیاز داریم تا دو دکمه روی JFrame خود قرار دهیم. برای این منظور از پنجره Palette روی Tab مربوط به Swing Controls کلیک کرده و مطابق تصویر زیر دو بار گزینه Button روی روی UI می کشیم:

اکنون به منظور تغییر دادن نام دکمه ها مطابق با تصویر زیر عمل می کنیم:

در واقع روی دکمه مد نظر کلیک راست کرده و از پنجره ای که باز می شود روی گزینه Edit Text کلیک می کنیم:

می بینیم که امکان ویرایش نام دکمه ها برای ما فراهم می شود. حال متن دکمه سمت چپ را به Add به معنی “جمع کردن” و متن دکمه سمت راست را به Clear به معنی “پاک کردن” تغییر می دهیم:

در آموزش قسمت بعد خواهیم دید که به چه شکل با کدنویسی خواهیم توانست برای تک تک اجرای قرار گرفته روی UI عملکردی تعریف کرد.

آموزش نحوه ی کار با TextField ها در نرم افزار نت بینز


پس از تکمیل UI در آموزش های قسمت های قبل، در این آموزش قصد داریم ببنیم که به چه شکل می توان داده های ورودی را از داخل TextField ها گرفته و با استفاده از دکمه Add اعمال ریاضیاتی را روی آن ها اعمال نمود.

همانطور که قبلاً گفته شد دکمه Clear این وظیفه را دارا است تا هر عددی که داخل TextField ها قرار دارد را پاک کند. حال برای ایجاد چنین Functionality یا “عملکردی” روی دکمه Clear راست کلیک کرده سپس روی گزینه Event کلیک می کنیم:

همانطور که در تصویر فوق می بینیم پس از کلیک کردن روی گزینه Event پنجره دیگری باز خواهد شد. از این پنجره روی گزینه Action کلیک کرده و در نهایت از پنجره ای که باز خواهد شد روی گزینه actionPerformed به معنی “کاری که صورت گرفته است” کلیک می کنیم:

به محض کلیک کردن روی گزینه actionPerformed می بینیم که به صورت خودکار به Tab مربوط به Source می رویم و جایی از کد برای ما نمایش داده می شود که بایستی کدهای تکمیلی خود را اضافه کنیم. همانطور که در تصویر فوق مشخص است، کدهای مربوط به پاک کردن اعداد داخل TextField ها را می بایست در بخشی از کد اضافه کنیم که با یک مستطیل نمایش داده شده است. حال این سوال ممکن است پیش بیاید که بر چه مبنایی این بخش از کد را انتخاب کردیم. در واقع همانطور که در تصویر فوق مشخص است این دکمه دارای یک id برابر با jButton2 است و این id مرتبط با دکمه Clear است. برای اینکه از این مسئله مطمئن شویم مجدد روی Tab مربوط به Design کلیک می کنیم و روی دکمه Clear کلیک راست می کنیم:

در ادامه روی گزینه Change Variable Name کلیک می کنیم:

می بینیم که نام jButton2 به صورت خودکار برای این دکمه در نظر گرفته شده است که اگر بخواهیم می توانیم آن را تغییر دهم بدهیم. مجدد به Tab مربوط به Source مراجعه می کنیم و شروع به تکمیل کد خود برای دکمه Clear می کنیم:

همانطور که در تصویر فوق می بینیم id مرتبط با TextField اول jTextField1 نام دارد. این id را نوشته و متدی تحت عنوان setText(); را به آن ضمیمه می کنیم به این صورت که پس از نام id یک نقطه قرار داده سپس این متد را می نویسیم و در انتها هم یک علامت ; قرار می دهیم. هر متنی که داخل پرانتزهای این متد قرار دهیم در TextField نمایش داده خواهد شد اما از آنجا که می خواهیم TextField خالی شود فقط دو علامت “ “ داخل آن قرار می دهیم.

همین کار را برای دو فیلد دیگر هم انجام می دهیم. حال ممکن است مجدد این سوال پیش بیاید که نام های jTextField1 و jTextField2 و jTextField3 از کجا ایجاد شده اند. به همان صورت پیش می توان روی تک تک TextField ها کلیک راست کرده و روی Change Variable Name کلیک کرد تا بتوان به نام TextField مربوطه دست یافت. حال نیاز است تا برنامه خود را تست کنیم:

برای این منظور همانطور که در تصویر فوق مشخص است روی دکمه Run که با یک مثلث سبز رنگ نشان داده می شود کلیک می کنیم:

همانطور که می بینیم در هر سه فیلد اعدادی تصادفی را وارد کرده ایم. حال به محض کلیک کردن روی دکمه Clear کلیه فیلدها پاک خواهند شد:

در ادامه قصد داریم تا برای دکمه Add هم عملکردی تعریف کنیم. در حقیقت هر آنچه که وارد فیلدهای مرتبط با First Number و Second Number می کنیم یک String خواهد بود. حال دکمه Add وظیفه دارد تا این String ها را به متغیری از جنس عددی تبدیل کند و سپس آن ها را با یکدیگر جمع کند. در نهایت حاصلجمع را مجدد به یک String تبدیل کرده و در فیلد مربوط به Result نمایش دهد.

برای این منظور همانطور که برای دکمه Clear یک actionPerformed در نظر گرفتیم برای دکمه Add نیز این کار را انجام می دهیم:

همانطور که در تصویر فوق ملاحظه می شود روی دکمه Add کلیک راست کرده و از منوی Events روی Action کلیک کرده و در نهایت روی گزینه ActionPerformed کلیک می کنیم:

می بینیم که به صورت خودکار کدهای مرتبط با این دکمه نمایش داده می شوند. در واقع از آنجا که id مرتبط با این دکمه برابر با jButton1 است پس می بایست به تکمیل کدهای مرتبط با این id بپردازیم:

اولین کاری که می کنیم این است که سه متغیر از جنس عدد اعشاری double تعریف می کنیم یکی تحت عنوان numberOne که مرتبط با فیلد First Number خواهد بود، یکی تحت عنوان numberTwo که مرتبط با فیلد Second Number خواهد بود و یکی هم تحت عنوان numberResult که مرتبط با فیلد Result خواهد بود.

حال نیاز است تا با استفاده از کلاس Double و متدهای مرتبط با آن String ها را به عدد اعشاری تبدیل کنیم. برای این منظور کد خود را به صورت زیر تکمیل می کنیم:

همانطور که می بینیم ابتدا نام متغیر numberOne را نوشته و یک علامت مساوی مقابل آن قرار می دهیم. حال از آنجا که می خواهیم محتویات jTextField1 را به یک عدد اعشاری تبدیل کنیم می بایست از کلاس Double جاوا استفاده کرده و متد parseDouble را به آن ضمیمه کنیم. کاری که این کلاس و متد انجام می دهند این است که String یی که به آن اختصاص داده شود را به یک عدد اعشاری تبدیل می کنند. در ادامه می بایست داخل پرانتز مرتبط با متد parseDouble نام فیلد مربوطه را نوشته سپس متد getText() را به آن ضمیمه کنیم. کاری که این متد انجام می دهد این است که متن داخل TextField را می گیرد.

همین مراحل را برای فیلد مرتبط با Second Number هم انجام می دهیم. از این پس مقادیر متغیرهای numberOne و numberTwo اعدادی اعشاری خواهد بود که توسط کاربر وارد فیلدهای نرم افزار می شوند.

در ادامه می بایست مقادیر متغیرهای numberOne و numberTwo را با یکدیگر جمع نموده و در متغیری تحت عنوان numberResult ذخیره سازیم. برای این منظور کد فوق را به صورت زیر تکمیل می کنیم:

حال می بایست مقدار به دست آمده را به فیلد مرتبط با Result اختصاص دهیم اما این در حالی است که ابتدا می بایست این متغیر اعشاری را به یک String تبدیل کنیم. برای این منظور کد فوق را به صورت زیر تکمیل می کنیم:

همانطور که می بینیم برای اختصاص دادن چیزی به یک فیلد می بایست از متدی تحت عنوان setText(); استفاده کرد. برای این منظور id مرتبط با فیلد Result را نوشته و متد setText(); را به آن ضمیمه می کنیم. اکنون چنانچه نام numberResult را داخل پرانتز بنویسیم تا مقدار اختصاص داده شده به آن به این فیلد اختصاص یابد برنامه با مشکل مواجه شد چرا که ما نمی توانیم یک متغیر از جنس double را به متد setText(); اختصاص دهیم. از اینرو ابتدا می بایست این متغیر double را به یک String تبدیل کنیم. برای این منظور از کلاس String و متد valueOf() استفاده می کنیم. به عبارت دیگر به برنامه خود دستور می دهیم تا مقدار متغیر numberResult را گرفته و آن را تبدیل به یک String کند و در نهایت آن String را به فیلدی تحت عنوان jTextField3 اختصاص دهد.

حال برنامه خود را اجرا می کنیم:

در فیلد اول عدد 7 را نوشته و در فیلد دوم هم عدد 7 را مجدد می نویسیم. حال با کلیک کردن روی دکمه Add این دو عدد را با یکدیگر جمع کرده و در فیلد مرتبط با نتیجه نمایش می دهیم. علاوه بر این با کلیک کردن روی دکمه Clear هم کلیه فلیدها را پاک خواهیم کرد.

معرفی JOptionPane در زبان برنامه نویسی جاوا


در این آموزش قصد داریم تا با مفهومی تحت عنوان JOptionPane در ساخت رابط گرافیکی کاربر در زبان برنامه نویسی جاوا آشنا شویم. تفاوتی که این قسمت از آموزش با قسمت های پیشین آموزش های مرتبط با رابط گرافیکی کاربر دارد این است که از این قسمت آموزش به بعد به صورت کدنویسی دستی اقدام به ساخت GUI یا همان رابط گرافیکی کاربر خواهیم کرد.

برای شروع کار فولدری تحت عنوان 67th Session روی دسکتاپ ویندوز ایجاد کرده و فایلی تحت عنوان test.java در آن ایجاد می کنیم و کدهای زیر را داخل آن وارد می کنیم (لازم به ذکر است که این نام انتخابی است):

public class test {
    public static void main(String[] args) {
    }
}

همانطورکه در کد فوق مشاهده می شود حداقل کدهای مورد نیاز برای ساخت یک پروژه با زبان برنامه نویسی جاوا وارد کلاس شده اند (به خاطر داشته باشیم که نام کلاس می بایست با نام این فایل حتماً یکسان باشد). برای ایجاد یک نقطه شروع برای برنامه خود متد public static void main را داخل Block مربوط به کلاس می نویسیم (برای آشنایی بیشتر با مفهوم Block به آموزش های پیشین مراجعه نمایید).

حال از آنجا که قصد داریم تا از کلاس های مرتبط با رابط گرافیکی زبان برنامه نویسی جاوا و متدهای مرتبط با آن ها استفاده کنیم، ابتدا می بایست کلاس مد نظر خود را به صورت زیر وارد برنامه کنیم:

import javax.swing.JOptionPane;
public class test {
    public static void main(String[] args) {
    }
}

همانطور که در کد فوق می بینیم در اولین خط از کد، کلید واژه import را نوشته که به منظور وارد سازی کلاس های از پیش تعریف شده جاوا در پروژه مورد استفاده قرار می گیرد سپس javax را نوشته و یک نقطه قرار می دهیم. حال از آنجا که قرار است کلاسی را برای ساخت رابط گرافیکی مورد استفاده قرار دهیم که جزو swing است، از اینرو کلید واژه swing را نوشته و مجدد یک نقطه قرار می دهیم. در انتها می بایست نام کلاس مد نظر خود را بنویسیم که در این آموزش کلاس JOptionPane مد نظر ما است و در نهایت یک علامت ; قرار می دهیم.

این سوال ممکن است پیش بیاید که منظور J در نام کلاس JOptionPane و دیگر کلاس های Swing چیست؟

در واقع همانطور که پیش از این توضیح داده شد کلاس های مرتبط با swing برگرفته از کلاس های AWT هستند و پس از طراحی swing در زبان برنامه نویسی جاوا، برای آنکه مشابهت اسمی مابین کلاس های AWT و swing پیش نیاید به ابتدای کلیه کلاس های مرتبط با swing یک حرف J اضافه شده است.

اکنون نیاز است تا یک سناریو تعریف کنیم. در این برنامه ای که می خواهیم بنویسیم قصد داریم تا یک ماشین حساب خیلی مقدماتی طراحی کنیم به طوری که دارای دو فیلد است که از آن طریق کاربران می توانند اعداد مد نظر خود را وارد کنند. سپس یک دکمه قرار داده که به محض کلیک کردن روی آن، حاصلجمع دو عدد وارد شده توسط کاربر در فیلد سوم نمایش داده خواهد شد. برای این منظور کدهای فوق را به صورت زیر تکمیل می کنیم:

import javax.swing.JOptionPane;
public class test {
    public static void main(String[] args){
        String numberOne;
        String numberTwo;
    }
}

همانطور که در کد فوق می بینیم، دو شیئ از روی کلاس String تحت عناوین numberOne و numberTwo به معنی به ترتیب “عدد شماره یک” و “عدد شماره دو” ایجاد کرده ایم. این دو شیئ فرا خوانی شده اند اما مقدار دهی نشده اند. برای این منظور در ادامه می خواهیم مقداری را برای آن ها در نظر بگیریم:

import javax.swing.JOptionPane;
public class test {
    public static void main(String[] args){
        String numberOne;
        String numberTwo;
        numberOne = JOptionPane.showInputDialog("Please enter your first number:");
        numberTwo = JOptionPane.showInputDialog("Please enter your second number:");
    }
}

همانطور که در کد فوق می بینیم بعد از شیئ ساخته شده اول از روی کلاس String تحت عنوان numberOne یک علامت مساوی قرار داده و در این جا به جای آنکه داخل علامت های ” ” چیزی مثل یک جمله برای این String در نظر بگیریم، نام کلاس JOptionPane را نوشته و متدی تحت عنوان showInputDialog(); را به آن ضمیمه می کنیم.

کاری که این کلاس و متد جاوا انجام می دهند این است که پنجره کوچکی باز شده که از کاربر می خواهد تا چیزی وارد فیلد داخل پنجره کند. حال برای آنکه این پنجره گویاتر باشد، می بایست عنوانی برای آن در نظر بگیریم که در این مثال عبارت Please enter your first number به معنی “لطفاً عدد اول خود را وارد کنید” در نظر گرفته شده است. همین مراحل را برای شیئ مان تحت عنوان numberTwo هم دنبال می کنیم.

حال می توانیم برنامه خود را اجرا کنیم. پیش از این توضیح دادیم برای آن که بدون استفاده از IDE هایی مثل اکلیپس و نت بینز و … اقدام به Compile کردن برنامه های جاوای خود کنیم، می بایست از Command Prompt استفاده کنیم. برنامه Command Prompt ویندوز را اجرا می کنیم:

ابتدا برای آنکه وارد دسکتاپ شویم، دستور cd را نوشته بعد با قرار دادن یک فاصله عبارت Desktop را می نویسیم (در اینجا نوشتن عبارت دسکتاپ با حرف ابتدایی بزرگ یا کوچک تفاوتی نخواهد داشت). بعد از آنکه وارد دسکتاپ شدیم مجدد دستور cd را نوشته و این بار برای آنکه وارد فولدر مربوط به این آموزش شویم عبارت 67th Session را می نویسیم و دکمه اینتر را می زنیم (البته این در صورتی است که پروژه خود را روی دسکتاپ ایجاد کرده باشید. در غیر این صورت با استفاده از دستور cd می توان به فولدرها و درایوهای مختلف سیستم وارد شد). همانطور که در آخرین خط در پنجره فوق پیدا است، وارد فولدر پروژه شده و می توانیم برنامه خود را Compile کنیم:

همانطور که می بینیم دستور javac را نوشته که در اینجا c مخفف compile است و یک فاصله قرار می دهیم و نام فایل جاوای خود را می نویسیم که در این مثال test.java است (توجه داشته باشیم که در اینجا حروف بزرگ و کوچک خیلی اهمیت دارند).

حال دکمه اینتر را می زنیم:

حال ممکن است تصور کنیم که هیچ اتفاقی نیفتاده است اما این درست نیست بلکه در این مرحله اگر ارور خاصی دریافت نکنیم، این بدان معنا است که پروژه ما با موفقیت Compile شده است. به عبارت دیگر کدهای جاوای ما به زبان قابل فهم برای ماشین تبدیل شده اند. برای اثبات این موضوع به فولدر پروژه رجوع می کنیم:

می بینیم که فایلی تحت عنوان test.class ایجاد شده که اگر آن را باز کنیم با علائم عجیبی که برای انسان غیر قابل فهم اما برای سیستم قابل فهم اند مواجه خواهیم شد.

حال به سادگی می توان برنامه را اجرا کرد. برای این منظور مطابق تصویر زیر عمل می کنیم:

همانطور که در تصویر فوق مشخص است، ابتدا دستور java را نوشته و سپس یک فاصله قرار داده و این بار صرفاً نیاز است تا نام test را وارد کرده و دکمه اینتر را بزنیم:

می بینیم که پنجره ای ایجاد شده که در آن می توان هر چیزی که تمایل داشته باشیم وارد نماییم.

در آموزش بعد خواهیم دید که به چه شکل ورودی این فیلدها را می توان به عدد تبدیل نموده و به ماشین حساب خود انتقال دهیم.


مطالب مرتبط

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *