في سياق تطوير واجهة المستخدم باستخدام لغة البرمجة جافا، يأتي إستفسارك حول كيفية ملء مستطيل بشكل جزئي بناءً على نسبة معينة مع تطبيق معين لبرمجة واجهة المستخدم باستخدام Swing. يُعد هذا موضوعًا مثيرًا للاهتمام يستحق تحليلًا مفصلاً.
للبداية، دعوني أوضح لك الطريقة التي يمكنك من خلالها تحقيق هذا الهدف. في لغة البرمجة جافا، يُمكنك استخدام الفئة Graphics
المتاحة في مكتبة Swing للتحكم في عمليات الرسم على واجهة المستخدم. يبدأ الأمر بتجهيز لوحة (JPanel
) حيث يتم رسم المستطيل عليها.
javaimport javax.swing.*;
import java.awt.*;
public class ColoredRectanglePanel extends JPanel {
private double percentage;
public ColoredRectanglePanel(double percentage) {
this.percentage = percentage;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
int width = getWidth();
int height = getHeight();
// حساب الارتفاع الفعلي للمستطيل بناءً على النسبة المئوية
int filledHeight = (int) (height * percentage);
// رسم المستطيل الكامل بلون معين
g.setColor(Color.BLUE);
g.fillRect(0, 0, width, height);
// رسم المستطيل الجزئي بناءً على النسبة المئوية
g.setColor(Color.RED);
g.fillRect(0, height - filledHeight, width, filledHeight);
}
public void setPercentage(double percentage) {
this.percentage = percentage;
repaint(); // إعادة رسم اللوحة عند تغيير النسبة
}
public static void main(String[] args) {
JFrame frame = new JFrame("Colored Rectangle Example");
ColoredRectanglePanel rectanglePanel = new ColoredRectanglePanel(0.6); // نسبة اللون الملء
frame.getContentPane().add(rectanglePanel);
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
في هذا السياق، يتم تمثيل المستطيل الكامل بلون معين، ثم يتم رسم مستطيل جزئي في الجزء السفلي بناءً على النسبة المئوية التي تم تمريرها. يُظهر الشيفرة المرفقة كيفية استخدام فئة ColoredRectanglePanel
في تطبيق Swing.
بمجرد استخدام هذا الشيفرة في تطبيقك، يمكنك تغيير النسبة وفقًا للقيمة التي تحددها البرنامج. يُشير الرمز أيضًا إلى كيفية تحديث الواجهة بعد تغيير النسبة باستخدام الطريقة setPercentage
المخصصة. يمكنك تخصيص هذا الكود وفقًا لمتطلبات مشروعك وتصميم واجهة المستخدم الخاصة بك.
المزيد من المعلومات
بالطبع، سنقوم الآن بتوسيع النقاش حول الطريقة التي تم استخدامها في الشيفرة البرمجية وتوفير بعض المعلومات الإضافية حول مفاهيم مهمة في هذا السياق.
أولاً وقبل كل شيء، تستخدم الشيفرة فئة JPanel
كوحدة أساسية لرسم المستطيلات وعرضها على واجهة المستخدم. تعتبر JPanel
واحدة من مكونات Swing المستخدمة بشكل شائع لبناء واجهات المستخدم في تطبيقات جافا.
javapublic class ColoredRectanglePanel extends JPanel {
// ...
}
في الداخل، يُعرف المتغير percentage
لتخزين النسبة المئوية التي يجب أن يتم رسم المستطيل الجزئي وفقًا لها.
javaprivate double percentage;
تم تحديد الأسلوب paintComponent
لرسم المكون (JPanel
)، والذي يُستدعى تلقائيًا عند الحاجة. يُستخدم هذا الأسلوب لرسم المستطيل الكامل بلون معين ومن ثم رسم المستطيل الجزئي بناءً على النسبة المئوية المحددة.
java@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// ...
}
تم استخدام فئة Color
لتمثيل الألوان، حيث تم تحديد لون أزرق للمستطيل الكامل ولون أحمر للمستطيل الجزئي.
javag.setColor(Color.BLUE);
g.fillRect(0, 0, width, height);
g.setColor(Color.RED);
g.fillRect(0, height - filledHeight, width, filledHeight);
يُستخدم أسلوب setPercentage
لتحديث قيمة النسبة وإعادة رسم اللوحة بأكملها.
javapublic void setPercentage(double percentage) {
this.percentage = percentage;
repaint(); // إعادة رسم اللوحة عند تغيير النسبة
}
أخيرًا، في الكود الرئيسي، تم إنشاء مثيل من ColoredRectanglePanel
واستخدامه في إطار Swing لعرض اللوحة.
javapublic static void main(String[] args) {
JFrame frame = new JFrame("Colored Rectangle Example");
ColoredRectanglePanel rectanglePanel = new ColoredRectanglePanel(0.6); // نسبة اللون الملء
frame.getContentPane().add(rectanglePanel);
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
هذا الكود يُظهر كيف يمكنك دمج مكونات Swing مخصصة مع تطبيقك لتحقيق تحكم دقيق في رسم واجهة المستخدم بشكل برمجي. يمكنك تكامل هذا المثال في تطبيقك الفعلي وتخصيصه وفقًا لاحتياجات مشروعك الخاص.