Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals 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);
}
});
}
}
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 على حسب قيمته في جافا