در این قسمت تیم کدگیت را با آموزش JColorChooser در جاوا همراهی کنید. در ابتدای این جلسه، توضیح کوتاهی در مورد کلاس JColorChooser خواهیم داد سپس چندین متد از این کلاس را معرفی خواهیم کرد. در پایان یک مثال واقعی از کلاس JColorChooser را پیاده سازی خواهیم کرد. همچنین پیشنهاد میکنیم قبل از مطالعه این جلسه، آموزشهای گذشته گرافیک در جاوا را مطالعه کنید.
کلاس JColorChooser
کلاس JColorChooser یک کلاس از پیش تعریف شده در کتابخانه Swing میباشد. کلاس JColorChooser برای ایجاد یک Dialog Box رنگ استفاده می شود تا کاربر بتواند هر رنگی را انتخاب کند(تصویر زیر Dialog Box را نشان میدهد). این کلاس سه الگو برای انتخاب رنگ را به صورت GUI در اختیار کاربر قرار میدهد:
- HSB
- RGB
- Swatch
در لیست زیر متدهای کلاس JColorChooser که بیشتر استفاده میشود را آوردهایم:
- ()JColorChooser : متد Constructor است و یک پنل انتخاب رنگ را میسازد.
- (JColorChooser(color initialcolor : متد Constructor است و در ورودی یک رنگ به عنوان رنگ اولیه در پنل انتخاب رنگ میگیرد.
- (showDialog(Component component, String title, Color initialColor : یک Dialog Box (شبیه به عکس بالا) را نمایش میدهد. پارامترهای ورودی به ترتیب: Component که در آن Dialog Box نمایش داده شود (اگر Null باشد Dialog Box در وسط صفحه مانیتور نمایش داده میشود). Title یا همان عنوان Dialog Box است و initialColor همان رنگ اولیه(جهت انتخاب) میباشد. خروجی این متد، رنگ انتخاب شده توسط کاربر است(در صورت انتخاب کاربر).
مثال JColorChooser در جاوا
در مثال JColorChooser، هدف نمایش یک Dialog Box میباشد. یک Button در Frame ایجاد کرده با کلیک بر روی آن، Dialog Box نمایش داده میشود پس از نمایش Dialog Box، کاربر میتواند رنگی را انتخاب کند و در صورتی که رنگ انتخاب شد پس زمینه JFrame به رنگ انتخابی کاربر تغییر خواهد کرد. کد این مثال به صورت زیر است:
public class ColorChooserExample extends JFrame implements ActionListener {
JButton b;
Container c;
ColorChooserExample() {
c = getContentPane();
c.setLayout(new FlowLayout());
b = new JButton("color");
b.addActionListener(this);
c.add(b);
}
public void actionPerformed(ActionEvent e) {
Color initialcolor = Color.RED;
Color color = JColorChooser.showDialog(this, "Select a color",
initialcolor);
c.setBackground(color);
}
public static void main(String[] args) {
ColorChooserExample ch = new ColorChooserExample();
ch.setSize(400, 400);
ch.setVisible(true);
ch.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
خروجی کد بالا را در تصویر زیر میبینید: