Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

Swingطريقة تغيير لون الـ JProgressBar على حسب قوة كلمة المرور

المثال التالي يعلمك طريقة تغيير لون الـ Progress Bar على حسب طول النص المدخل في JPasswordField.


مثال

Main.java
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JProgressBar;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.Color;
 
public class Main {
 
    public static void main(String[] args) {
 
    // هنا قمنا بإنشاء النافذة و جميع الأشياء التي سنضعها فيها
        JFrame frame = new JFrame("JProgressBar demo");
 
        JLabel label_1 = new JLabel("Password");
        JLabel label_2 = new JLabel("Strength");
        JPasswordField password = new JPasswordField();
        JProgressBar progress = new JProgressBar(0, 10);
 
        // frame هنا قمنا بتحديد أماكن الأشياء التي سنضيفها في الـ
        label_1.setBounds(20, 20, 60, 30);
        password.setBounds(90, 20, 140, 30);
        label_2.setBounds(20, 60, 60, 30);
        progress.setBounds(90, 68, 140, 15);
 
        // frame هنا قمنا بإضافة جميع الأشياء التي قمنا بتعريفها سابقاً في الـ
        frame.add(label_1);
        frame.add(password);
        frame.add(label_2);
        frame.add(progress);
 
        // frame هنا قمنا بتحديد خصائص الـ
        frame.setSize(300, 150);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null);
        frame.setVisible(true);
 
 
        // password هنا نضع الأوامر التي نريد تنفيذها عند كتابة أو حذف أي حرف موجود في مربع الـ
        password.addKeyListener(new KeyListener() {
            @Override
            public void keyTyped(KeyEvent e) { }
 
            @Override
            public void keyPressed(KeyEvent e) { }
 
            @Override
            public void keyReleased(KeyEvent e)
            {
                int passLength = password.getPassword().length;
                progress.setValue(passLength);
 
                // إلى الأحمر Progress Bar إذا قام المستخدم بإدخال 4 أحرف, سيتم تغيير لون الـ
                if(passLength < 5)
                    progress.setForeground(Color.red);
 
                // إلى الأصفر Progress Bar إذا قام المستخدم بإدخال 5-10 أحرف, سيتم تغيير لون الـ
                else if(passLength >= 5 && passLength < 10)
                    progress.setForeground(Color.yellow);
 
                // إلى الأخضر Progress Bar إذا قام المستخدم بإدخال 10 أحرف أو أكثر, سيتم تغيير لون الـ
                else if(passLength >= 10)
                    progress.setForeground(Color.green);
 
            }
        });
 
    }
 
}

ستظهر لك النافذة التالية عند التشغيل.

قم بإدخال أي نص و لاحظ كيف سيتغير لون الـ Progress Bar على حسب عدد الأحرف المدخلة.

طريقة تغيير لون ال JProgressBar على حسب قيمته في جافا