# فناوری جاوا > برنامه‌نویسی جاوا > Java SE : نگارش استاندارد جاوا > آموزش: آموزش گرافیک جاوا

## selena.m

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

                                                                                                              ممنون

----------


## spiderman200700

سلام.
این سایت کار با همه ی ابزار ها رو خیلی روان و با مثال توضیح داده.
http://www.javabeginner.com/java-swing

----------


## selena.m

ممنونم از معرفی این سایت  :لبخند: 
اما اگه سایت فارسی هم بشناسید که بهم معرفی کنید ، خیلی عالی میشه .

----------


## spiderman200700

سایت فارسی که مثل اون سایت همه چیزو گفته باشه بعید میدونم وجود داشته باشه. ولی اینو ببینید، از صفر شروع نکرده،ولی  فکر میکنم بد نباشه.
http://java.tadbirpoya.ir/articles/JAVA%20SE/Swing.htm

----------


## selena.m

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

----------


## spiderman200700

راستش در این مورد یا باید یه منبع گیر بیارید و با اون جلو برید یا مطالب رو خورد خورد پیدا کنید و بازم با اونا پیش بررید. نمیشه توضیح داد چون یه کم برای توضیح مطلب زیاده.
ولی اینکه از کجا شروع کنید میتونید از این برنامه ی ساده یه چیزایی بفهمید:
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Paint extends JPanel {

    public void paintComponent(Graphics g) {
        g.setColor(Color.CYAN);
        g.fillRect(0, 0, getWidth(), getHeight());
        g.setColor(Color.red);
        g.setFont(new Font("tahoma", Font.BOLD, 25));
        g.setColor(Color.black);
        g.drawRect(50, 50, 200, 200);
        g.fillRect(70, 70, 200, 200);
        g.setColor(Color.red);
        g.drawString("salam. ba in metod mituni har chizi ru safhe rasm koni", 0, getHeight() / 2);
    }

    public static void main(String args[]) {
        JFrame frame = new JFrame("A simple paint program");
        Paint paintPanel = new Paint();
        frame.setResizable(false);
        frame.add(paintPanel);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS  E);
        frame.setSize(720, 480);
        frame.setVisible(true);
    }
}

----------


## spiderman200700

در کتاب Java Complete Reference در فصل 21 مطالب خوبی توضیح داده شده در این مورد.
لینک دانلود کتاب:
http://www.ziddu.com/download/125602...rence.PDF.html

این کتاب به اسم راهنمای جامع جاوا ترجمه شده. اگه به ترجمه ی کتاب دسترسی دارید باید فصل 23 رو بخونید

----------


## selena.m

:لبخند: سلام ،
واقعا از راهنمایی و توجه تون ممنونم 

من برنامه ی شما رو تو eclipse نوشتم ولی error  میده، نمیدونم چرا!؟
 ازخط پنجم از آخر برنامه ایراد میگیره.

من تو eclipse یه project و یه class به اسم Paint درست کردم و برنامه تونو توش نوشتم. موقع  ساختن class هم فقط تیک main رو زدم. گفتم شاید تو این مراحل اشتباه کرده باشم!

----------


## spiderman200700

خواهش میکنم.
این برنامه هیچ ایرادی نداره و خیلی ها اجراش کردن.
شما بهتره به هیچی دست نزنی. فقط کد ها رو کپی کن و اجرا کن.
در ضمن در جاوا صدها error مختلف وجود داره. بهتر بود کل error رو اینجا میذاشتی که ببینیم.
موفق باشی

----------


## selena.m

من میخواستم ERROR رو واستون بذارم اما وقتی اونو تو تاپیک کپی میکردم پیغامم ارسال نمیشد.
شما راست میگفتید ، من موقع تایپ اشتباه کرده بودم که حل شد.

مرسی ، ممنون

----------


## spiderman200700

موفق باشید

----------


## Ma_Y_R

سلام دوستان.می خواستم بدونم چه جوری می تونم یه تصویر رو روی JLabel نمایش بدم؟

----------


## yegane8

> سلام دوستان.می خواستم بدونم چه جوری می تونم یه تصویر رو روی JLabel نمایش بدم؟


اگه با netbeans کار می کنی یه jlabel درست کن بعد ازش properties بگیر icon رو بزن و عکس رو انتخاب کن

----------


## Ma_Y_R

می خوام کد رو بدون dragکردن بنویسم اون موقع چه جوری باید تصویر رو قرار بدم؟

----------


## spiderman200700

> می خوام کد رو بدون dragکردن بنویسم اون موقع چه جوری باید تصویر رو قرار بدم؟


سلام.
اینطوری میتونی انجامش بدی:
JLabel lbl=new JLabel(new ImageIcon("icon.png"));

----------


## Ma_Y_R

به جای icon باید تصویر مورد نظرم رو قرار بدم؟

----------


## Ma_Y_R

دوست عزیز کد بالا جواب نداد..... :ناراحت:  :ناراحت:  :ناراحت:

----------


## selena.m

سلام،
من  برای اینکه تو NetBeans یه صفحه ی سفید ایجاد کنم (واسه زمینه ی برنامه ی paint ) ،  
 یه کلاس از نوع JFrame ایجاد کردم و تو قسمت Design اش از palette ها یه  panel  رو  تو صفحه گذاشتم اما وقتی فایل رو run میکنم صفحه رو نشون نمیده!!
اما چیزای دیگه مثل button رو نمایش میده!!
نمیدونم ایرادم کجاست؟

اگه کسی میدونه بگه باید چیکار کنم،
ممنون

----------


## yegane8

سلام 
چون رنگ panel با رنگ فرمت یکی شده نمی بینیش
روی panel راست کلیک کن  properties رو بزن در پنجره باز شده رنگ background رو تغییر بده

----------


## spiderman200700

> دوست عزیز کد بالا جواب نداد.....


جواب میده.حتما جای عکستون اشتباهه
 عکستون توی چه مسیریه؟

----------


## Ma_Y_R

> جواب میده.حتما جای عکستون اشتباهه
>  عکستون توی چه مسیریه؟


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

----------


## yegane8

> متاسفانه مشکلم دقیقا اینه که نمیدونم چه جوری باید مسیر رو بنویسم؟


با اجازه جناب spiderman200700
وقتی می خوای path بدی باید با 2تا \ مسیر ها رو از هم جدا کنی 
یعنی اینطوری:


    JLabel lbl=new JLabel(new ImageIcon("C:\\Users\\x\\Desktop\\name.png"));

----------


## spiderman200700

میتونی اینکار هم بکنی
عکساتو داخل پوشه ی پروژه بذار(کنار پوشه ی SRC)، بعدش موقع مسیر دادن فقط اسم عکس و پسوندشو بنویس
مثلا:
JLabel lbl=new JLabel(new ImageIcon("icon.png"));
icon.png داخل پوشه ی پروژه و کنار پوشه ی SRC قرار گرفته.

----------


## Ma_Y_R

دوستان هر دو روش بالا رو امتحان کردم ولی هیچ کدوم جواب نداد :خیلی عصبانی:  :خیلی عصبانی: 

// (label2=new JLabel("Label with text",new ImageIcon("C:\\Users\\LG\\Desktop\\Wallpaper(3).JP  EG "),SwingConstants.LEFT



فقط متن رو نشون میده.... :گیج:

----------


## spiderman200700

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

----------


## selena.m

سلام،
من میخوام چند تا از Button هام رو رنگی کنم ( دکمه ی رنگ ها واسه برنامه ی paint ) (میخوام وقتی دکمه ی مثلا زرد رو انتخاب میکنم ، رنگ زرد انتخاب شه) اما نمیدونم چه طور باید این کارو کرد ؟
Button هایی هم که گذاشتم از هم فاصله دارند، نمیدونم چه طوری باید به هم بچسبونمشون ؟
تو *NetBeans* مینویسم.

اگه کسی میتونه راهنماییم کنه. 
* 
                                                                                                                                                             "  ممنون* "

----------


## spiderman200700

سلام
برای رنگ JButton میتونید ا setBackground و setForeground استفاده کنید.

برای به هم چسبیدن هم میتونید از BoxLayout استفاده کنید

----------

