Swingطريقة تغيير لون الـ JProgressBar
على حسب قوة كلمة المرور
المثال التالي يعلمك طريقة تغيير لون الـ Progress Bar على حسب طول النص المدخل في JPasswordField
.
مثال
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() { public void keyTyped(KeyEvent e) { } public void keyPressed(KeyEvent e) { } 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 على حسب عدد الأحرف المدخلة.