Swing طريقة تعديل شكل الـ JColorChooser

المثال التالي يعلمك طريقة إنشاء الـ Color Chooser Dialog مرة واحدة و إظهاره فقط عند النقر على زر معين لإختيار الألوان.
بالإضافة إلى تغيير محتوى الـ Preview إلى فقط نص.
اللون الذي يقوم المستخدم بإختياره سيتم وضعه كخلفية للـ Frame عند النقر على الزر Ok.
في كل مرة يقوم فيها المستخدم بإظهار الـ Color Chooser Dialog سيوضع لون خلفية الـ Frame كاللون الإفتراضي المختار فيه.


مثال

Main.java
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.

طريقة تعديل شكل ال JColorChooser في جافا

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة