کلاس JColorChooser در جاوا همان طور که از اسمش پیداست برای ایجاد یک جعبه رنگ استفاده میشود، کاربر میتواند از میان رنگ ها، رنگ دلخواه خود را انتخاب کند. برای درک بهتر نسبت به این اجزای گرافیکی در جاوا تصویر(1) را مشاهده کنید:
• سازنده های پرکاربرد کلاس JColorChooser :
کاربرد | سازنده |
ایجاد یک ColorChooser که رنگ پیشفرض انتخاب شده آن سفید است. | JColorChooser() |
ایجاد یک ColorChooser و تعیین رنگ پیشفرض انتخاب شده | JColorChooser(color initialcolor) |
• منظور از رنگ پیشفرض انتخاب شده، رنگی است هنگام اجرای برنامه بین رنگهای موجود در ColorChooser بصورت پیشفرض انتخاب شده است. مثلا در تصویر(2) رنگ پیشفرض انتخاب شده قرمز است.
• متدهای پرکاربرد کلاس JColorChooser:
متد | void addChooserPanel(AbstractColorChooserPanel panel) |
کاربرد | این متد برای افزودن یک رنگ به مجموعه رنگ های موجود در یک ColorChooser |
متد | static Color showDialog(Component c, String title, Color initialColor) |
کاربرد | این متد برای نمایش جعبه رنگ های موجود در ColorChooser کاربرد دارد. |
مثال:
package javalike ; import java.awt.event.*; import java.awt.*; import javax.swing.*; public class ColorChooserExample extends JFrame implements ActionListener { JButton b; ColorChooserExample() { b = new JButton("color"); b.addActionListener(this); b.setBounds(40, 40, 160, 30); add(b); setLayout(null); setSize(400, 400); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e) { Color initialcolor = Color.YELLOW; Color color = JColorChooser.showDialog(this, " select a color", initialcolor); b.setBackground(color); } public static void main(String[] args) { ColorChooserExample ch = new ColorChooserExample(); } } |
خروجی: ابتدا هنگام اجرای برنامه خروجی بصورت تصویر(3) است:
• بعد از کلیک کردن روی دکمه color خروجی بصورت تصویر(4) خواهد شد:
• همان طور که در تصویر(4) مشاهده میکنید یک جعبه رنگی نمایش داده شده که رنگ انتخاب شده پیشفرض آن زرد است.این جعبه رنگی از بخش های مختلفی برای انتخاب رنگ تشکیل شده است.فرض کنید رنگ مورد نظر ما همین زرد است، حال اگر دکمه ok را فشار دهیم خروجی بصورت تصویر(5) خواهد شد:
• خب با زدن دکمه ok رنگ دکمه button ما به زرد تغییر میکند.
توضیحات:
1. b = new JButton("color"); 2. b.addActionListener(this); 3. b.setBounds(40, 40, 160, 30); 4. add(b); 5. setLayout(null); 6. setSize(400, 400); 7. setVisible(true); 8. setDefaultCloseOperation(EXIT_ON_CLOSE); |
1. ایجاد یک دکمه button با عنوان color
2. در جلسات قبل در مورد این متد زیاد صحبت کردیم، برای افزودن یک ActionListener به دکمه button استفاده میشود.
3. تعیین مختصات و ابعاد دکمه button
4. افزودن دکمه button به فریم
5. چون از طرح بندی خاصی استفاده نکردیم مقدار این متد را null قرار داده ایم.
6. تعیین اندازه فریم
7. برای نمایش فریم و تمام اجزای گرافیکی این متد را صدا زده ایم.
8. این دستور را نیز در جلسات گذشته بررسی کردیم، این دستور ثابت برای بستن برنامه با دکمه close یا همان دکمه ضربدر قرمز رنگ گوشه فریم. اگر از این دستور استفاده نکنیم با زدن دکمه ضربدر قرمز رنگ برنامه به طور کامل بسته نمیشود.
public void actionPerformed(ActionEvent e) { Color initialcolor = Color.YELLOW; Color color = JColorChooser.showDialog(this, " select a color", initialcolor); b.setBackground(color); } |
• متد actionPerformed درون اینترفیس ActionListener قرار دارد. وظیفه این متد دریافت رویدادهای مربوط به فشردن یا کلیک کردن روی اجزای گرافیکی نظیر button ها، menu ها و... است. وقتی رویدادی رخ میدهد این متد صدا زده میشود و دستورات درون آن اجرا میشود.
Color initialcolor = Color.YELLOW; |
• ایجاد یک شی از کلاس Color و مقداردهی اولیه آن. رنگ آن را زرد (yellow) قرار داده ایم.
• شی که از نوع کلاس Color تعریف میشود رنگ ها را در خود ذخیره میکند و برای رنگی کردن اجزای گرافیکی و... استفاده میشود.
Color color = JColorChooser.showDialog(this, " select a color",initialcolor); |
• با استفاده از متد showDialog جعبه رنگ ما نمایش داده میشود.
• متد showDialog یک متد استاتیک درون کلاس JColorChooser است که با کلاس JColorChooser آن را صدا زده ایم.
• جعبه رنگ نمایش داده شده، عنوان آن " select a color" و رنگ پیش فرض انتخاب شده آن شیinitialcolor که از نوع کلاس Color هستش و مقدار درون آن رنگ yellow است.
• کلمه کلیدی this به شی از کلاسمون که JFrame را به ارث برده است اشاره دارد. چون کلاس ما کلاس JFrame را به ارث برده است، پس فرزند JFrame حساب میشه و به تمام ویژگی ها و رفتارهای JFrame دسرسی پیدا میکند. در نتیجه شی از کلاسمون رو میتوانیم در پارامتر اول متد showDialog که اشیای اجزای گرافیکی حق دارند قرار بگیرند، جایگزین کنیم.
• ما در جعبه رنگی که نمایش داده شده رنگ مورد نظر را انتخاب میکنیم و با زدن دکمه ok متد showDialog مقدار رنگ انتخاب شده را برای ما برمیگرداند، که در شی color از نوع کلاس Color هستش ذخیره میکنیم.
مثال:
package javalike; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ColorChooserExample extends JFrame implements ActionListener { JFrame f; JButton b; JTextArea ta; ColorChooserExample() { f = new JFrame("Color Chooser Example."); b = new JButton("Pad Color"); b.setBounds(200, 250, 100, 30); ta = new JTextArea(); ta.setBounds(10, 10, 300, 200); b.addActionListener(this); f.add(b); f.add(ta); f.setLayout(null); f.setSize(400, 400); f.setVisible(true); } public void actionPerformed(ActionEvent e) { Color c = JColorChooser.showDialog(this, "Choose", Color.GREEN); ta.setBackground(c); } public static void main(String[] args) { new ColorChooserExample(); } } |
خروجی: برنامه هنگام اجرا دارای یک ناحیه متنی TextArea و یک دکمه button است. ناحیه TextArea ابتدا سفید و خالی بود که ما یک متن داخلش نوشتیم و همچنین بعد از کلیک روی دکمه pad Color جعبه رنگی ما نمایش داده میشود که رنگ پیشفرض انتخاب شده آن سبز است و بعد از کلیک کردن روی دکمه OK موجود در جعبه رنگی ناحیه سفید TextArea به سبز تغییر رنگ میدهد. ( اگر توضیحات واضع نبود، کاری نداره! کد بالا رو در ایکلیپس یا هر برنامه دیگه اجرا کنید.)
پیروز و موفق باشید
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690