۱۳۸۹ دی ۱۰, جمعه

کلاس های bean

English
کلاس های bean ، کلاس هایی هستند نوشته شده با زبان برنامه نویسی جاوا ، که قابلیت استفاده مجدد را دارند. مورد استفاده آن ها برای نگه داشتن چندین object در یک object می باشد. بنابراین می توانند به عنوان یک object در بین متدهای مختلف استفاده شوند. یک کلاس bean یک object جاوا می باشد که می تواند ویژگی serializable را دارا باشد. دسترسی به متغیرهای خصوصی آن از طریق متدهای getter و setter می باشد.


یک کلاس جاوا در صورتی عنوان bean را می گیرد که از قوانینی که در مورد نام گذاری متدها و متغیرهاست تبعیت کند
قوانین:
- کلاس باید سازنده پیش فرض (بدون پارامتر ورودی) را داشته باشد این برای ساده تر کردن ایجاد کلاس می باشد
- متغیرها باید خصوصی باشند و دسترسی آن ها از طریق متدهای set و get می باشد و همچنین باید قواعد نام گذاری پیروی شود.
- کلاس می تواند ویژگی serializable را دارا باشد که به برنامه اجازه ذخیره مطمئن داده و بازیابی آٔن را می دهد.

مترجم : شایسته علوی

۱۳۸۹ آذر ۱۶, سه‌شنبه

اضافه کردن Help جاوا (API) به Add API to Netbeans


English


۰- پس از دانلود API از اینترنت آن را بر روی هارد ذخیره کنید

۱- نت بینز را باز کرده منو Tools را باز کنید

۲- از منو باز شده گزینه Java Platforms را انتخاب کنید.

۳- از پنجره باز شده تب Javadoc را باز کنید.

۴- سپس بر روی دکمه Add Zip/Folder کلیک کرده از پنجره باز شده مسیر فولدر داک را مشخص کنید و دوباره دکمه Add Zip/Folder را کلیک کنید.



برای استفاده از API جاوا ، نشانگر را بر روی کلمه دلخواه برده ، دکمه های Ctrl+Space را نگه دارید تا پنجره ی اطلاعات کاملی در مورد آن کلمه باز شود.


با سپاس از استاد شایسته علوی

۱۳۸۹ آذر ۱۰, چهارشنبه

کلاس Vector

کلاس وکتور در پکیج java.util قرار دارد

وکتور ها معمولآ به جای آرایه ها استفاده می‌شوند زیرا دامنه ی آن‌ها به طور خودکار با افزایش یک داده جدید افزایش می یابد. وکتور ها به ابعاد ثابتی احتیاج ندارند. اندازه وکتور با افزایش یا برداشت آیتم ها زیاد یا کم می شود. وکتور ها می‌توانند فقط اشیاء را نگهدارند و نه نوع های اولیه primitive types مثل int را. اگر می‌خواهید نوع های اولیه را در وکتور ها نگهدارید آن را داخل یک شی قرار دهید ( برای مثال برای ذخیره یک مقدار integer از کلاس Integer استفاده کنید یا اینکه کلاس خودتان را تعریف کنید) ، اگر از کلاس Integer استفاده کنید قادر نخواهید بود مقدار آن را تغییر دهید به این دلیل گاهی بهتر است کلاس خودتان را تعریف کنید. کلاس وکتور و کلاس‌های بالاتر آن شامل بسیاری متد های مفید می باشند. برای مثال برای اضافه کردن عناصر به وکتور از متد add استفاده کرد. برای اضافه کردن موقعیت های ثابت از متد add(index , object)I استفاده می‌شود، متد اضافه کردن یک عنصر addElement و متد clear همه عناصر را از وکتور پاک می‌کند.

برای خلق وکتور باید ابتدا یکی از پکیج های java.util.Vector یا java.util را وارد import کنید. و سپس به روش زیر آن را ایجاد کنید


Vector v = new Vector();

Vector v = new Vector(300);

برای اضافه کردن عنصر به وکتور

v.add(s); // adds s to the end of the Vector v

برای اطلاعات بیشتر اینجا را بخونید.


۱۳۸۹ مهر ۱۵, پنجشنبه

آموزش گام به گام جاوا : ۴

این بار می خواهیم با استفاده از IDE یک نرم افزار بسازیم
استفاده از IDE برنامه نویسی را راحت تر می کند و سرعت را افزایش می دهد. یکی از بهترین این IDE ها نت بینز است.

می خواهیم با استفاده از NetBeans IDE 6.8 یک پنجره (فریم) با یک یا چند دکمه بسازیم تا وقتی کاربر بر یکی از این دکمه ها کلیک می کند با گرفتن چند عدد از کاربر محاسباتی را انجام داده نتیجه را نمایش دهد مثلآ حجم استوانه را با گرفتن قطر و ارتفاع استوانه از کاربر، نمایش دهد.
خب شروع کنیم
۰- پس از نصب نت بینز آن را باز کنید
۱- از منو File گزینه New Project را انتخاب کنید.
۲- از پنجره باز شده دگمه Next را کلیک کنید.
۳- در پنجره باز شده نام پروژه را انتخاب کرده ، تیک Create Main Class را بردارید و دگمه Finish را کلیک کنید.
۴- در زیر منو پروژه بر روی default package کلیک راست کرده از منو باز شده گزینه New و از زیر منو باز شده گزینه Java Package را انتخاب کنبد
۵- در پنجره باز شده نام پکیج را انتخاب کرده ، دگمه Finish را کلیک کنید تا پکیج جدید ایجاد شود.
۶- بر روی پکیج ایجاد شده کلیک راست کرده از منو باز شده گزینه New و از منو باز شده گزینه JFrame form را انتخاب و در پنجره باز شده نام آن فرم را تعیین کنید و دگمه Finish را کلیک کنید.

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

اگر بر روی منو Pallete سمت راست برویم و آن را باز کنیم مجموعه ای از ابزار ها مثل دگمه خواهیم دید که می توانیم به فرم اضافه کنیم اما قبل از هر کار یک Panel بر روی فرم اضافه کرده ابعاد آن را به اندازه فرم تنظیم می کنیم.
خب حالا می خواهیم برخی ویژگی ها را به این پنل بدهیم
۱- بر روی پنل کلیک راست کنید و از منو باز شده گزینه Customize Code را انتخاب کنید. سپس زیر جمله new عبارت زیر را تایپ کنید.
jPanel1.setBorder(BorderFactory.createTitledBorder("محاسبه حجم"));

با این کار شما با استفاده از متد setBorder یک بردر به پنل افزوده اید که عبارت ( محاسبه حجم ) عنوان این بردر است.
برای دیدن نتیجه کار بر روی آیکون چکش-جارو(clean and build) کلیک کنید تا فایل جر ساخته شود در این صورت پنجره ای باز شده از شما می خواهد اجازه دهید متد main برای اجرای برنامه ایجاد شود با کلیک بر دگمه OK به شما یک خطا اعلان می کند این به علت این است که شما برای ایجاد بردر باید پکیج مربوط را افزوده باشید پس به سر برگ Source مجاور سربرگ Design سمت چپ بالا بروید کد برنامه را مرور کنید تا به خطایی که به شکل قرمز مشخص شده برسید اگر بر روی آیکون لامپ با علامت تعجب قرمز کلیک کنید منویی باز می شود که پکیج فراموش شده را نشان می دهد بر روی اولین گزینه کلیک کنید تا با اضافه شدن پکیج علامت خطا بر طرف شود و سپس بر روی آیکون فلش سبز کلیک کنید تا برنامه اجرا شود.

خب همانطور که می بینید عنوان سمت چپ نوشته شده برای اینکه سمت راست نوشته شود باید از متد زیر استفاده کنید.

jPanel1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);

به همان روش قبلی در سر برگ Design بروید ، بر روی پنل کلیک راست کنید و از منو باز شده گزینه Customize Code را انتخاب و جمله فوق را به آن بیفزایید. حال اگر دوباره سعی کنید برنامه را اجرا کنید با خطا روبرو می شوید باید به همان روش قبل به سر برگ Source بروید و پکیج مربوطه را اضافه کنید. درست مثل دفعه قبل.

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

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

برای افزودن دکمه دوباره به Palette سمت راست رفته بر روی Button کلیک کنید و آن را به پنل بیفزایید. بر روی دکمه کلیک راست کنید و از منو باز شده اولین گزینه Edit Text را انتخاب کرده تا بتوانید نوشته روی دکمه را تغییر دهید. مثلآ بنویسید (استوانه) .

برای انجام محاسبات بهتر است در یک کلاس جداگانه متد هایی را که هر یک چیزی را محاسبه می کند داخل آن کلاس بنویسیم \. برای این منظور بر روی پکیجی که قبلآ ساختیم کلیک راست ، از منو باز شده گزینه New و از منو باز شده گزینه Java Class را انتخاب می کنیم.
در پنجره باز شده نام کلاس را انتخاب می کنیم مثلآ Calculate و دکمه Finish را کلیک می کنیم
کلاس ساخته شده را به صورت زیر کامل کنید

package com;


import javax.swing.JOptionPane;

/**
*
* @author kian
*/
public class Calculate {

public static void cylinderVolumeCalculate() throws NumberFormatException,NullPointerException{
String t = JOptionPane.showInputDialog("قطر استوانه را وارد کن", null);
String a = JOptionPane.showInputDialog("طول استوانه را وارد کن", null);

double T = Double.parseDouble(t);
double A = Double.parseDouble(a);

double V = 0.785 * T * T * A ;
JOptionPane.showMessageDialog(null, "حجم " + V);
}


}





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


حالا به کلاس قبلی به سر برگ Design رفته و بر روی دکمه کلیک راست کرده از منو باز شده گزینه Event و از منو باز شده گزینه Action و از منو باز شده گزینه actionPerformed را انتخاب کرده سپس در محل باز شده عبارت

Calculate.cylinderVolumeCalculate();
0

را تایپ کنید.


این عبارت متد cylinderVolumeCalculate() را از کلاس Calculate صدا می زند.

حالا برنامه را با کلیک بر روی دکمه Run ( فلش سبز رنگ) اجرا کنید.

۱۳۸۹ شهریور ۱۷, چهارشنبه

آموزش گام به گام جاوا : ۳

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


// JFrame Example
import javax.swing.*;

class JFrameExample {

public static void main(String[] args) {

JFrame jframe = new JFrame();

jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jframe.getContentPane().add(new JLabel("bonbon"));

jframe.setSize(100,100);

jframe.setVisible(true);
}
}


خط اول یک کامنت است که در اجرای برنامه جاوا نقشی ندارد کامنت ها معمولآ به دو صورت زیر به نمایش در می آیند
یک خط
// it is a comment

چند خط

/*
* Here is a block comment.
*/

برای اطلاعات بیشتر در مورد کامنت اینجا را نگاه کنید

import javax.swing.*;

از آنجاییکه ما در این برنامه از کلاس JFrame استفاده می کنیم باید پکیج مربوطه را در ابتدای برنامه وارد (import) کنیم.
وقتی به شکل بالا بعد از نام پکیج از نقطه- ستاره استفاده می کنیم همه کلاس های موجود در این پکیج وارد می شود.

میتوانستیم به صورت زیر هم عمل کنیم

import javax.swing.JFrame;

در این صورت فقط کلاس JFrame از این پکیج مورد استفاده قرار می گیرد.

خب اولین جمله داخل متد main عبارت

JFrame jframe = new JFrame();

می باشد . کلید واژه ی new یک شی (object) از کلاس JFrame می سازد و در jframe ذخیره می کند. ساختار جمله همیشه به شکل فوق است.

چهار خط بعد چهار متد کلاس JFrame نشان می دهد. متد اول ، با نوشتن این خط به فریم نشان می دهیم که هنگام کلیک بر روی دکمه ضربدر فریم برنامه به طور کامل بسته می شود. متد دوم ، دوباره با استفاده از کلید واژه new یک لیبل ساخته و با متد getContentPane به فریم اضافه می کنیم در اینجا عبارتی را که لیبل نشان می دهد bonbon می باشد.
برای آشنایی بیش تر با کلاس لیبل و متد های آن اینجا را مطالعه کنید.
متد بعدی اندازه فریم را مشخص می کند و متد آخر فریم را قابل دید می نماید.

خب حالا برنامه را در یک ویرایش گر مثل نوت پد کپی و با نام JFrameExample.java ذخیره کرده سپس برنامه را
کامپایل و اجرا کنید

با سپاس از استاد شایسته علوی

۱۳۸۹ شهریور ۱۴, یکشنبه

کامپایل و اجرای برنامه جاوا

در این قسمت کامپایل کردن برنامه ای را که نوشته شده را شرح می دهم!
کامپایل کردن در واقع یعنی ترجمه زبان برنامه جاوا به زبان ماشین
اگر برنامه به شکل زیر ذخیره شده باشد
ClassName.java

برای کامپایل برنامه جاوا در همان پوشه ای که برنامه را ذخیره کرده اید در لینوکس کلیک راست کرده و از منو یاز شده گزینه
Open in Terminal
را انتخاب می کنید
و در ویندوز از منو استارت ، Run را انتخاب کرده در آن عبارت cmd را تایپ می کنید و با دستور
cd..
از مسیر جاری خارج و با دستور
cd masir

به شاخه ای که برنامه را ذخیره کرده اید بروید ( می بینید؟ در لینوکس خیلی آسون تره)

سپس برای کامپایل برنامه دستور
javac ClaccName.java
را تایپ و اینتر کنید اگر برنامه خطا نداشته باشد یک فایل

ClassName.class
ساخته می شود.

برای اجرا در همان محیط ترمینال دستور

java ClassName
را تایپ و اینتر کنید تا برنامه اجرا شود.

روش شرح داده شده در بالا روش دستی است ، با استفاده از (IDE) می توانید این کار را به راحتی انجام دهید.
اینجا را نگاه کنید

آموزش گام به گام جاوا : ۲

دوباره سلام
در درس گذشته برنامه ای نوشتیم که عبارت Hello World را در ترمینال چاپ می کرد
این بار می خواهیم همان برنامه را چنان بنویسیم که از طریق یک رابط گرافیکی این کار را انجام دهد



import javax.swing.JOptionPane;


public class Hello {
public static void main ( String [] args) {
JOptionPane.showMessageDialog(null,"Hello again","greeting", JOptionPane.INFORMATION_MESSAGE);
System.exit (0);

}

}

import

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

در درس گذشته دو جمله اعلان کلاس و متد main برسی شد.

در جمله ی

JOptionPane.showMessageDialog(null,"Hello again","greeting", JOptionPane.INFORMATION_MESSAGE);


از متد showMessageDialog از کلاس JOptionPane استفاده شده است این متد یک پیام Hello again را نمایش می دهد
عنوان پنجره باز شده greeting است و آیکون آن یک آیکون اطلاعات است.


System.exit (0);

با افزودن این جمله ( متد exit از کلاس System و آرگومنت 0 ) ، با کلیک بر روی دگمه OK برنامه بسته می شود.

اطلاعات کامل در مورد متد ها و آرگومنت های کلاس JOptionPane را از اینجا دریافت کنید
همچنین این پاور پوینت را مطالعه نمایید


۱۳۸۹ شهریور ۱۳, شنبه

آموزش گام به گام جاوا : ۱


برای برنامه نویسی جاوا ابتدا باید

JDK

Java Development Kit

را نصب کنید.


برای شروع از ساده ترین برنامه

Hello, world

استفاده می کنیم و آن را واژه به واژه تفسیر می کنیم.

public class Hello {
public static void main(String args[]) {
System.out.println("Hello, world");
}
}



public

این یکی از کلید واژه های جاوا است که نوع دسترسی را اعلان می کند. این عبارت اعلان می کند که کلاس برای تمام برنامه قابل دسترسی است

برای اطلاعات بیشتر اینجا را نگاه کنید


class

همه چیز در جاوا (داده ها و متد ها ) در کلاس قرار می گیرند.

Class = data + methids

کلاس ها پیچیدگی برنامه را کاهش می دهند. نام شی برای هر نمونه از کلاس خلق شده اتخاذ شده و به این ایده برنامه نویسی شی گرا می گویند.

یک کلاس قالبی است که تعیین می کند یک شی چه ویژگی هایی می تواند داشته باشد.

برای اطلاعات بیشتر اینجا را نگاه کنید


Hello

نام کلاس در این برنامه Hello است. نام کلاس باید با حروف بزرگ شروع شود (این یک قرار داد است) بدنه کلاس در میان {} قرار می گیرد

برنامه فوق باید بصورت Hello.java ذخیره شود.


جمله ی

public static void main(String[] args)
یا
public static void main(String args[])


متد main نامیده می شود.

برای آشنایی با متد اینجا ، اینجا و اینجا را مطالعه کنید.
بعد از واژه public که توصیف شد به static می رسیم دو نوع متد وجود دارد
متد نمونه Instance methods که از به هم پیوستن یک شی و متغیر های نمونه آن شی بوجود می آیند که این حالت قراردادی آن است
و متد های استاتیک Static methods که از متغیر های نمونه هر شی داخل کلاس استفاده نمی کنند.
اگر یک متد را استاتیک تعیین کنید با این کار یک پیام به کامپایلر می دهید تا به هیج متغیر نمونه ای دسترسی نیابد. یک متد استاتیک معمولآ همه داده ها را از پارامتر ها می گیرد و مقادیری را
با استفاده از این
پارامتر ها بدون ارجاع به متغیر ها محاسبه می کند
برای اطلاعات بیشتر اینجا را مطالعه کنید

void
این واژه کلیدی جاوا نشان می دهد یک متد هیچ مقداری را بر نمی گرداند
دستور ًReturn برای متد های void اختیاری است

برای اطلاعات بیشتر اینجا را مطالعه کنید

main
در برنامه نویسی جاوا هر برنامه باید شامل این متد باشد

String args[]
پارامتری به نام args را تعریف می کند که آرایه ای از
نمونه های کلاس stringاست(هر آرایه مجموعه ای از
شی ء های مشابه است).شی ء های نوع string برای ذخیره
سازی رشته های کاراکتری هستند. [1]

استرینگ در واقع نوعی داده است
داده‌ها،مواد خام و اصلي برنامه نويس است كه آنها را
از راه‌هاي مختلفي به دست مي‌آورد. اين اطلاعات، از
انواع مختلفي هستند. بعضي حروف و كلمه،و بعضي اعداد
وارقام.

1- رشته‌ای (String): حروف و كلمه
2- عددی (Number): اعداد و ارقام (اعداد صحيح و اعشاری)
3- منطقی (Boolean): بله و خير[2]



System.out
سه نوع جریان I/O برای استفاده در کنسول از پیش تعریف شده
وجود دارد
System.in
System.out
System.err
اولی یک اینپوت استریم است
دومی پرینت استریم برای نوشتن در کنسول
و سومی نیز مانند بالا
در واقع System کلاسی در API جاواست که در پکیج java.lang قرار دارد

در پایان این برنامه عبارت زیر را در کنسول چاپ می کند.
Hello, world

برای کامپایل و اجرای این برنامه اینجا را نگاه کنید

۱۳۸۹ مرداد ۱۵, جمعه

درونمایه ( محتوای ) یک فایل MANIFEST.MF

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 16.3-b01 (Sun Microsystems Inc.)
SplashScreen-Image: images/farvahar1.png
Main-Class: components.Converter

ردیف چهارم قبل از اجرای برنامه یک عکس را نمایش می دهد.
ردیف پنجم کلاس converter را که در پکیج components قرار دارد را اجرا می کند.

۱۳۸۹ مرداد ۱۳, چهارشنبه

محاسبه حجم

یک کلاس با دو متد برای محاسبه حجم مکعب و استوانه

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package chem10;

import javax.swing.JOptionPane;

/**
*
* @author kian
*/
public class Calculate {

public static void cubeVolumeCalculate() throws NumberFormatException,NullPointerException{
String t = JOptionPane.showInputDialog("طول را وارد کن", null);
String a = JOptionPane.showInputDialog("عرض را وارد کن", null);
String e = JOptionPane.showInputDialog("ارتفاع را وارد کن", null);
double T = Double.parseDouble(t);
double A = Double.parseDouble(a);
double E = Double.parseDouble(e);
double V = T * A * E;
JOptionPane.showMessageDialog(null, "حجم " + V);
}

public static void cilandrVolumeCalculate() throws NumberFormatException,NullPointerException{
String h = JOptionPane.showInputDialog("ارتفاع", null);
String g = JOptionPane.showInputDialog("قطر را وارد کن", null);

double H = Double.parseDouble(h);
double G = Double.parseDouble(g);

double V = 0.785 * G * G * H;
JOptionPane.showMessageDialog(null, "حجم " + V);

}
}


یک فریم با دو دکمه برای آن که دو متد کلاس بالا را صدا بزند

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/*
* NewJFrame.java
*
* Created on Jun 28, 2010, 5:54:45 PM
*/
package chem10;

import javax.swing.JOptionPane;

/**
*
* @author kian
*/
public class NewJFrame extends javax.swing.JFrame {

/** Creates new form NewJFrame */
public NewJFrame() {
initComponents();
}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// //GEN-BEGIN:initComponents
private void initComponents() {

jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jButton1.setText("حجم مکعب");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jButton2.setText("حجم استوانه");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 259, Short.MAX_VALUE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(jButton1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(27, 27, 27))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(36, 36, 36)
.addComponent(jButton1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton2))
.addGroup(layout.createSequentialGroup()
.addGap(60, 60, 60)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(200, Short.MAX_VALUE))
);

pack();
}//
//GEN-END:initComponents

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
// TODO add your handling code here:
jLabel1.setText("Cube Volume");
try {
Calculate.cubeVolumeCalculate();
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(null, "Incorect value, try again with right data");
}catch (NullPointerException ex) {
JOptionPane.showMessageDialog(null, "Enter data");
}
}//GEN-LAST:event_jButton1ActionPerformed

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
// TODO add your handling code here:
Calculate.cilandrVolumeCalculate();
}//GEN-LAST:event_jButton2ActionPerformed

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {
new NewJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
// End of variables declaration//GEN-END:variables
}

۱۳۸۹ مرداد ۷, پنجشنبه

متد های پر کاربرد

تنظیم یک فونت برای لیبل یا هر چیز دیگر
setFont(new java.awt.Font("Tahoma", 1, 14));

تنظیم راست به چپ پارسی
setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);

فریم را وسط پنجره باز می کند
setLocationRelativeTo(null);

ترانسپرانت می کند
setTransprancy(0.7);

ایجاد بردر
setBorder(BorderFactory.createTitledBorder("Choose Text Color"));

تنظیم فونت بردر
setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createTitledBorder(null, myTitle, javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 16)),
BorderFactory.createEmptyBorder(5,5,5,5)));

تنظیم آیکون برای فریم
setIconImage
(Toolkit.getDefaultToolkit()
.getImage(getClass().
getResource("/images/adibicon.gif")));

یا

frame.setIconImage(
    new ImageIcon(
        YourApp.class.getResource("logo.png")
    ).getImage()
);
YourApp نام کلاس است

برای برداشتن نوار عنوان

setUndecorated(true);

۱۳۸۹ مرداد ۴, دوشنبه

استفاده از کمپوننت های swing

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

لینک

۱۳۸۹ تیر ۱۵, سه‌شنبه

محاسبه حجم مکعب

package Calculate;

import javax.swing.JOptionPane;

/**
*
* @author kian
*/


public class Calculate {
private static void volumCalculate () {

String t = JOptionPane.showInputDialog( "طول را وارد کن", null);
String a = JOptionPane.showInputDialog( "عرض را وارد کن", null);
String e = JOptionPane.showInputDialog( "ارتفاع را وارد کن", null);
double T = Double.parseDouble(t);
double A = Double.parseDouble(a);
double E = Double.parseDouble(e);
double V = T*A*E;
JOptionPane.showMessageDialog(null, "حجم " +V);



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

volumCalculate() ;

}
}

۱۳۸۹ تیر ۱۲, شنبه

ساختن یک پنجره ساده با یک لیبل

 import java.awt.*;
import javax.swing.*;

// Create a simple GUI window
public class TopLevelWindow {

private static void createWindow() {

//Create and set up the window.
JFrame frame = new JFrame("Simple GUI");
frame.setDefaultCloseOperation(JFrame.EXIT_ON _CLOSE);

JLabel textLabel = new JLabel("I'm a label in the window",SwingConstants.CENTER);
textLabel.setPreferredSize(new Dimension(300, 100));
frame.getContentPane().add(textLabel, BorderLayout.CENTER);

//Display the window.
frame.setLocationRelativeTo(null);
frame.pack();
frame.setVisible(true);
}

public static void main(String[] args) {

createWindow();

}
}

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

۱۳۸۹ خرداد ۲۴, دوشنبه

مراحل اضافه کردن کتابخانه در نت بینز

۱- بر روی فولدر project کلیک راست کرده از منو باز شده آخرین گزینه properties را انتخاب می کنیم.
۲- از Categories سمت راست گزینه Libraries را انتخاب می کنیم.
۳- دکمه Add Library را کلیک می کنیم.
۴- از منو باز شده Library مورد نظر را انتخاب کرده در صورتی که کتابخانه ما خارج از لیست باشد دکمه Create را میزنیم.
۵- نام کتابخانه را انتخاب و دکمه ok را می زنیم
۶- از پنجره باز شده دکمه Add jar/folder را می زنیم.
۷-از مسیر مورد نظر jar فایل را انتخاب می کنیم و دکمه Add Jar/Folder را و سپس Ok را میزنیم.

۱۳۸۹ اردیبهشت ۲۶, یکشنبه

مقدمه ای بر کلاس ها و اشیاع (ترجمه درس های Fred Swartz)

اهداف این درس
کلاس ها شامل اطلاعات و متد ها هستند.
یک کلاس یک نوع داده را تعریف می کند.
مزیت: کلاس ها مرتبط با مفاهیم در قلمرو مسئله هستند.
مزیت: کلاس ها باعث کاهش پیچیدگی بوسیله افزایش ارتباط و کاهش جفت شوندگی می شوند.
معرفی کلاس ها به عنوان ذخیره سازی اطلاعات در اشیاع .
واژه نامه
متغیر نمونه Instance variable : متغیری که در داخل کلاس ولی در خارج از متد اعلان می شود. معمولآ private.
میدان Field: مترادف متغیر نمونه ، صفت - وازه ی غیر رسمی ولی متداول.
ویژگی
Attribute: مترادف متغیر نمونه ، میدان . اغلب در مرحله طراحی به کار می رود.
ویژگی
Property: مترادف متغیر نمونه ، میدان. واژه ای متداول است اگر میدان به صورت public شناخته شود.

مفاهیم برنامه نویسی شیء گرا:
کلاس = اطلاعات + متد ها. هر چیزی ( اطلاعات و متد ها در جاوا در کلاس ها قرار داده می شوند. در گذشته هم ما از کلاس ها برای نگهداری متد ها استفاده کردیم ( متد main و شاید چند متد استاتیک دیگر) . این متد ها از متغیر های محلی استفاده می کنند، که کاملآ اختصاص به متد دارند ( private هستند) و وقتی متد بر می گردد آنها ناپدید می شوند.

توسعه تاریخی: کلاس ها می توانند برای ذخیره اطلاعات نیز به کار روند. از نظر تاریخی زبان های برنامه نویسی چیزی شبیه کلاس داشتند تا اطلاعات را گروه بندی کنند. که معمولآ
structs یا records نامیده می شدند. آنها فقط برای ذخیره کردن اطلاعات به کار می رفتند و نه متد ها. سر انجام فایده ترکیب اطلاعات و متد ها برای کار تشخیص داده شد.


یک کلاس قالبی است که تعیین می کند که یک شی چه ویژگی هایی می تواند داشته باشد. شما ابتدا یک کلاس تعریف می کنید سپس با استفاده از لغت کلیدی new یک شی ایجاد می کنید. یک کلاس تعیین می کند چه میدان هایی یک شی خواهد داشت زمانی که آن را ایجاد می کنیم.
وقتی یک شی جدید ایجاد می شود یک بلوک از حافظه به آن اختصاص می یابد که به اندازه کافی بزرگ است تا این سه میدان را در بر گیرد.
برای ایجاد یک شی جدید از عبارت new استفاده می کنیم و به دنبال آن نام کلاس و به دنبال آن پرانتز قرار می گیرد.

مقادیر پیش فرض میدان ها (متغیر های نمونه) null, zero, false
بر خلاف متغیر های محلی در متد ها، متغیر های نمونه مقادیر پیش فرض دارند. (مثل مقادیر پیش فرض در آرایه ها). اشیاع null ، اعداد zero و مقادیر بولی false هستند.
دسترسی عمومی به میدان ها (فیلد ها ، متغیر های نمونه) با نقطه ، نشان گذاری
همه میدان های عمومی می توانند با نقطه نشان گذاری قابل دسترس شوند ( در آینده روش های بهتری خواهیم آموخت)
برای ارجاء یک میدان ، نام شی را بنویسید سپس نقطه بگذارید و نام فیلد را بنویسید.

تعیین یک کلاس قالبی است برای ایجاد اشیاع:
یک کلاس تعیین می کند که کدام میدان های یک شی در آن است. شما به عبارت new احتیاج دارید تا یک شی جدید در کلاس بسازید تا مقداری از حافظه به آن اختصاص یابد و یک مقدار به هی میدان واگذار شود.

۱۳۸۹ فروردین ۳۰, دوشنبه

زير مجموعه هاي متد

دو زير مجموعه متد به قرار زير است
Getter- متد هايي كه يك مقدار را از يك شي بر مي گردانند. مقادير اغلب مثل يك فيلد (ميدان) ساده در يك كلاس قرار دارند اما ممكن است همچنين زماني كه getter صدا مي شود ساخته شود.
قرار دادهاي نامگذاري : قرار دادهاي نامگذاري جاوا براي متد هاي getter بستگي به آن دارد كه آيا برگشتي متد بولي boolean هست يا نه.
boolean getter عمومآ با كلمات is يا has شروع مي شوند
if (x.isVisible())......
while (y.hasDescendants()).....
همه انواع ديگر getter ها با كلمه get شروع مي شوند مثل:
String greeting = z.getText()
متد هاي Setter مقدار يا ويژ ‍گي ها ي يك شي را تنظيم مي كند كه ممكن است به صورت يك فيلد پياده شده باشد ، اما مي تواند به روش هاي ديگر نيز پياده سازي شود.
مقدار برگشتي: نوعآ setter ها هيچ مقداري را بر نمي گردانند. اما دو راه براي برگرداندن مقدار وجود دارد
1- برگرداندن مقادير قديمي
2- برگرداندن شي كه setter هاي صدا شده بتوانند به آن زنجير شوند

۱۳۸۹ فروردین ۲۳, دوشنبه

آناتومي متد

1- قابليت ديدن

public - private - package - protected

private اگرنمي خواهيد كلاس هاي ديگر از اين متد استفاده كنند

package اگر از هيچ عبارتي پيش از متد استفاده نكنيد به طور معمول آن متد به كلاس هايي كه داخل همان پكيج هستند اجازه استفاده مي دهد.

protected از اين عبارت استفاده نكنيد مگر در حالتي كه بخواهيد زير كلاس ها آن را ببينند.

public به همه كلاس ها اجازه مي دهد آن را ببينند.


2- كلاس استاتيك يا متد نمونه

يك متد در صورتي بايد استاتيك اعلان شود كه متغير يا متد نمونه نباشد. يك متد استاتيكفقط از پارامتر ها ي متغير هاي محلي ، ثابت هاي استاتيك و ديگر متد هاي استاتيك در همان كلاس استفاده مي كند.

اگر لغت كليدي استاتيك از قلم بيفتد متد يك متد نمونه خواهد بود.

3- نوع برگشتي مثل double

4- پارامتر ها ، كه داخل پرانتز قرار مي گيرند

5- بدنه متد ، كه داخل آكولاد قرار مي گيرند و جملاتي است كه وقتي متد صدا مي شوند اجرا مي گردند

6- جمله بر گشتي Return

يك متد بعد از آنكه آنچه كه بايد انجام داد به سوي صدا كننده بر مي گردد. اگر متد مقداري را برگرداند ( void نباشد) بايد شامل جمله return كه مقدار برگشتي را ميدهد باشد و وقتي برنامه به جمله return مي رسد كنترل به صدا كننده متد مي رسد تا مقدار برگشتي را به آن بدهد
مقدار بر گشتي به دو صورت مي تواند نوشته شود
1- متد يك مقدار را بر مي گرداند مثل:
double M = kilometers * MPR;
return M;
2- يك جمله ( بيان) را برگرداند
return kilometers*MPR;

۱۳۸۹ فروردین ۱۶, دوشنبه

آرگومنت ها (پارامتر ها)

مقاديري كه در يك متد قرار داده مي شود در زبان جاوا آرگومنت ناميده مي شود
وقتي متدي را صدا مي زنيد مي توانيد اطلاعاتي را در آن قرار داده تا استفاده كنيد آرگومنت داخل پرانتز قرار مي گيرند. اگر بيش از يك رگومنت وجود داشته باشد مي تواميد آنها را با كاما از هم جدا كنيد
JOption Pane.showInputDialog(null,"Enter.....");
ارزيابي آرگومنت ها
آرگومنت ها از چپ به راست ارزيابي مي شوند.

چرا از متد ها استفاده مي كنيم

1- براي كد هاي تكراري
اگر مرتب نياز به انجام كاري هستيد مي توانيد يك متد براي آن بنويسيد تا آن كار را انجام دهد و در صورت نياز آن متد را صدا كنيد.
2- براي پارامتري كردن كد ها
در ادامه استفاده از كد هاي تكراري مي توانيد با استفاده از پارامتر ها مسيري را كه آن كار انجام مي گيرد را تغيير دهيد
3- براي خلق واحد هاي ادراكي
متد ها را ايجاد كنيد تا ايده ها يتان را اجرا كنيد
4- براي ساده سازي
از آنجاييكه متغير هاي محلي و جملات يك متد از خارج از متد قابل ديدن نيستند آنها و پيچيدگي شان از بقيه قسمت هاي برنامه پنهان است اين كار مانع خطاهاي تصادفي و اغتشاش برنامه مي شود.

نكاتي در مورد متد ها

كد هاي جاوا در متد ها نوشته مي شوند.
هر متد در داخل يك كلاس قرار مي گيرد.
هر متد يك نام دارد كه به حروف كوچك شروع مي شود و عمومآ يك فعل است زيرا كاري انجام مي دهد.
در زبان هاي برنامه نويسي ديگر متد ها به نام هاي
function
procedure
subroutine
خوانده مي شود.
يك متد ممكن است مقداري را برگرداند مثل
parseDouble
يا هيچ مقداري را بر نگرداند مثل
showMessageDialog


تشخيص متد ها:
هميشه متد ها با دو پرانتز چپ و راست پايان مي پذيرند كه ممكن است داخل پرانتز آرگومنت (پارامتر) باشد.
هرگاه در كد هاي جاوا پرانتز مشاهده كرديد كه قبل از آن نامي وجود داشت آن يا يك متد يا يك كانستراكتور( سازنده) مي باشد سازنده ها هم بسيار شبيه متد ها مي باشند.
بدنه متد داخل آكولاد قرار مي گيرند.
گاهي متد ها به دنبال كلاسي كه از آن مشتق مي شوند مي آيند كه بين كلاس و متد يك نقطه قرار دارد مثلآ در :

JOptionPane.showMessageDialog(.....);
متد showMessageDialog از كلاس JOptionPane مشتق شده است
يا در :
Double.ParseDouble(.....);
متد ParseDouble از كلاس Double مشتق شده است.
اگر نام كلاس را ذكر نكنيد متد فرض مي كند در كلاس جاري تعريف شده است.