Java Swing - الكلاس JColorChooser
الكلاس JColorChooser
يستخدم للحصول على Panel جاهزة و مخصصة لإختيار الألوان.
في العادة يتم إظهار Panel الألوان في JDialog
عند النقر على زر مخصص لإختيار الألوان.
الـ Panel الذي يحتوي على Panel الألوان يسمى (Color Chooser Dialog).
بنا Swing - الكلاس JColorChooser
public class JColorChooser extends JComponent implements Accessible
كونستركتورات الكلاس JColorChooser
الجدول التالي يحتوي أهم الكونستركتورات الموجودة في الكلاس JColorChooser
.
الكونستركتور مع تعريفه | |
---|---|
public JColorChooser()
ينشئ كائن من الكلاس JColorChooser يمثل Panel مخصصة لإختيار الألوان.هنا يكون اللون الأبيض مختار بشكل إفتراضي. |
|
public JColorChooser(Color initialColor)
ينشئ كائن من الكلاس JColorChooser يمثل Panel مخصصة لإختيار الألوان مع تحديد اللون الذي يكون مختاراً بشكل إفتراض.مكان الباراميتر initialColor نضع كائن من الكلاس Color يمثل اللون الذي سيكون مختاراً بشكل إفتراضي. |
دوال الكلاس JColorChooser
الجدول التالي يحتوي على أهم الدوال الموجودة في الكلاس JColorChooser
.
الدالة مع تعريفها | |
---|---|
public Color getColor()
ترجع اللون المختار في كائن الـ JColorChooser الذي قام باستدعائها ككائن من الكلاس Color . |
|
public void setColor(Color color)
تستخدم لتحديد اللون الحالي في كائن الـ JColorChooser الذي باستدعائها.مكان البارميتر color نضع كائن من الكلاس Color يمثل اللون الذي سيتم إختياره. |
|
public void setColor(int red, int green, int blue)
تستخدم لتحديد اللون الحالي في كائن الـ JColorChooser الذي قام باستدعائها.
ترمي الإستثناء IllegalArgumentException في حال تم تمرير قيمة أصغر من 0 أو أكبر من 255 مكان أي باراميتر موجود فيها. |
|
public static Color showDialog(Component component, String title, Color initialColor)
تظهر Dialog يحتوي Panel جاهزة و مخصصة لإختيار الألوان, بالإضافة إلى ثلاث أزرار Ok, Cancel و Reset.ترجع درجة اللون المختار مكان إستدعاءها إذا قام المستخدم بالنقر على الزر Ok. و ترجع القيمة null في حال نقر على زر الخروج أو على الزر Cancel.
ملاحظة: في حال قام المستخدم بالنقر على Ok أو Cancel فإنه يتم إخفاء الـ Dialog و مسحه من الذاكرة. و في حال قام بالنقر على Reset فإنه يتم إختيار اللون الذي كان مختاراً عندما تم إظهار الـ Dialog. |
|
public static JDialog createDialog( Component component, String title, boolean modal, JColorChooser chooserPane, ActionListener okListener, ActionListener cancelListener)
ترجع Dialog جديد يحتوي Panel جاهزة و مخصصة لإختيار الألوان, بالإضافة إلى ثلاث أزرار Ok, Cancel و Reset.
ملاحظة: في حال قام المستخدم بالنقر على Ok أو Cancel فإنه يتم إخفاء الـ Dialog لكن لا يتم مسحه من الذاكرة. و في حال قام بالنقر على Reset فإنه يتم إختيار اللون الذي كان مختاراً عندما تم إظهار الـ Dialog. |
طريقة وضع اللون الذي إختاره المستخدم كخلفية للـ Frame
المثال التالي يعلمك طريقة إظهار Color Chooser Dialog عند النقر على زر معين لإختيار الألوان.
اللون الذي يقوم المستخدم بإختياره سيتم وضعه كخلفية للـ Frame عند النقر على الزر Ok.
في كل مرة يقوم فيها المستخدم بإظهار الـ Color Chooser Dialog سيوضع لون خلفية الـ Frame كاللون الإفتراضي المختار فيه.
مثال
import javax.swing.JFrame; import javax.swing.JButton; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.Color; import javax.swing.JColorChooser; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("JColorChooser demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس frame.setSize(400, 200); // هنا قمنا بتحديد حجم النافذة. عرضها 400 و طولها 200 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج frame.setLayout(null); // في النافذة بنفسنا Buttons لذلك سنقوم بتحديد مكان الـ Layout Manager أي لم نستخدم أي null هنا وضعنا // frame و تحديد موقعه و حجمه بداخل الـ Button هنا قمنا بتعريف JButton button = new JButton("Change background color"); button.setBounds(90, 70, 200, 30); // frame في الـ button هنا قمنا بوضع الـ frame.add(button); // مرئية frame هنا جعلنا الـ frame.setVisible(true); // button هنا قمنا بوضع الأوامر التي نريد تنفيذها عند النقر على الـ button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // frame فوق الـ Color Chooser Dialog سيتم إظهار الـ // كلون إفتراضي له frame سيتم وضع لون خلفية الـ // c في الكائن null بعد أن يتم إغلاقه سيتم تخزين اللون الذي إختاره المستخدم أو القيمة Color c = JColorChooser.showDialog(frame, "Color Picker", frame.getContentPane().getBackground()); // frame سيتم وضع اللون الذي إختاره كخلفة للـ ok في حال قام المستخدم بالنقر على الزر if(c != null) frame.getContentPane().setBackground(c); } }); } }
•ستظهر لك النافذة التالية عند التشغيل.
•أنقر على الزر Change background color لإظهار الـ Color Chooser Dialog.
Java Swing طريقة تعديل شكل الـ JColorChooser
المثال التالي يعلمك طريقة إنشاء الـ Color Chooser Dialog مرة واحدة و إظهاره فقط عند النقر على زر معين لإختيار الألوان.
بالإضافة إلى تغيير محتوى الـ Preview إلى فقط نص.
اللون الذي يقوم المستخدم بإختياره سيتم وضعه كخلفية للـ Frame عند النقر على الزر Ok.
في كل مرة يقوم فيها المستخدم بإظهار الـ Color Chooser Dialog سيوضع لون خلفية الـ Frame كاللون الإفتراضي المختار فيه.
مثال
import javax.swing.JFrame; import javax.swing.JButton; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JColorChooser; import javax.swing.JLabel; import java.awt.Font; import javax.swing.JDialog; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("JColorChooser demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس frame.setSize(400, 200); // هنا قمنا بتحديد حجم النافذة. عرضها 400 و طولها 200 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج frame.setLayout(null); // في النافذة بنفسنا Buttons لذلك سنقوم بتحديد مكان الـ Layout Manager أي لم نستخدم أي null هنا وضعنا // frame و تحديد موقعه و حجمه بداخل الـ Button هنا قمنا بتعريف JButton button = new JButton("Change background color"); button.setBounds(90, 70, 200, 30); // frame في الـ button هنا قمنا بوضع الـ frame.add(button); // لإختيار الألوان مع تخصيص محتواها Panel و الذي يمثل JColorChooser هنا قمنا بتعريف كائن من الكلاس JColorChooser colorChooser = new JColorChooser(); // هنا قمنا بتحديد اللون الإفتراضي الذي سيكون مختاراً فيه colorChooser.setColor(0, 51, 255); // مع تحديد خصائصه colorChooser هنا قمنا بتعريف الذي سنضعه بداخل الـ JLabel previewLabel = new JLabel("Selected Color"); previewLabel.setFont(new Font("Serif", Font.BOLD, 34)); previewLabel.setSize(previewLabel.getPreferredSize()); // colorChooser الموجودة في الـ Preview الـ Panel بداخل previewLabel هنا قمنا بوضع الـ colorChooser.setPreviewPanel(previewLabel); // colorChooser الموجود في الـ Ok و الذي سنضع فيه ما سيحدث عند النقر على الزر ActionListener هنا قمنا بتعريف كائن من الكلاس ActionListener okActionListener = new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { // فقط Frame سيتم وضع اللون المختار كخلفية للـ frame.getContentPane().setBackground(colorChooser.getColor()); } }; // colorChooser الموجود في الـ Cancel و الذي سنضع فيه ما سيحدث عند النقر على الزر ActionListener هنا قمنا بتعريف كائن من الكلاس ActionListener cancelActionListener = new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { // هنا يمكنك وضع أي أوامر تريد } }; // كمحتواه الوحيد colorChooser و سيتم وضع الـ dialog هنا سيتم إنشاء الـ JDialog dialog = JColorChooser.createDialog(frame, "Color Picker", false, colorChooser, okActionListener, cancelActionListener); // مرئية frame هنا جعلنا الـ frame.setVisible(true); // dialog سيتم فقط إظهار الـ button عند النقر button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { dialog.setVisible(true); } }); } }
•ستظهر لك النافذة التالية عند التشغيل.
•أنقر على الزر Change background color لإظهار الـ Color Chooser Dialog.
تعلم Java Swing
أفضل كورس لتعلم Java swing من الصفر الى الاحتراف .