مقدمة الكلاس Component
الكلاس Component
عبارة عن Abstract Class يحدد الخصائص و الأفعال المشتركة بين جميع الأشياء التي يمكننا إضافتها في واجهة المستخدم.
إذاً جميع الأشياء التي يمكن إضافتها في واجهة المستخدم تملك جميع الخصائص و الدوال الموجودة في هذا الكلاس.
بنا الكلاس Component
public abstract class Component extends Object implements ImageObserver, MenuContainer, Serializable
دوال الكلاس Component
الجدول التالي يحتوي على بعض دوال الكلاس Component
.
الدالة مع تعريفها | |
---|---|
public void add(Component c)
تضيف كائن بداخل الكائن الذي قام باستدعائها.مثال: يمكنك إستدعاءها لإضافة زر بداخل النافذة. مكان الباراميتر c نمرر كائن من إحدى الكلاسات التي ترث من الكلاس Component . |
|
public void setSize(int width, int height)
تحدد حجم الكائن الذي قام باستدعائها (عرضه و طوله).مثال: يمكنك إستدعاءها لتحديد حجم النافذة.
|
|
public void setBounds(int x, int y, int width, int height)
تحدد موقع و حجم الكائن الذي قام باستدعائها.مثال: يمكنك إستدعاءها لتحديد حجم و مكان النافذة التي ستظهر عند التشغيل.
|
|
public void setLayout(LayoutManager lm)
تحدد طريقة ترتيب الكائنات بداخل النافذة.مكان الباراميتر lm نمرر كائن من إحدى الكلاسات التي تنفذ الإنترفيس LayoutManager . |
|
public void setVisible(boolean visibility)
تستخدم لإخفاء أو إظهار الكائن الذي قام باستدعائها.مثال: يمكنك إستدعاءها لإخفاء النافذة أو إظهارها. مكان الباراميتر visibility نمرر القيمة true إذا أردنا إظهار الشيء و القيمة false إذا أردنا إخفاء الشيء. |
Java Swing الكلاس JLabel
Java Swing الكلاس JLabel
الكلاس JLabel
يستخدم لإضافة عنوان (Label) في واجهة المستخدم.
محتوى هذا العنوان يمكن أن يكون: نص, أيقونة, نص و أيقونة بجانبه.
بنا الكلاس JLabel
public class JLabel extends JComponent implements SwingConstants, Accessible
كونستركتورات الكلاس JLabel
الجدول التالي يحتوي على كونستركتورات الكلاس JLabel
.
الكونستركتور مع تعريفه | |
---|---|
public JLabel()
ينشئ كائن من الكلاس JLabel يمثل عنوان فارغ. |
|
public JLabel(String text)
ينشئ كائن من الكلاس JLabel يمثل عنوان.مكان الباراميتر text نمرر النص الذي نريد وضعه كعنوان. |
|
public JLabel(String text, int horizontalAlignment)
ينشئ كائن من الكلاس JLabel يمثل عنوان مع إمكانية تحديد موقع ظهور نص العنوان في النافذة.
الثوابت التي يمكن تمريرها مكان البارميتر horizontalAlignment : LEFT , CENTER , RIGHT , LEADING و TRAILING . |
|
public JLabel(Icon image)
ينشئ كائن من الكلاس JLabel يمثل أيقونة كعنوان.مكان الباراميتر image نمرر كائن من الإنترفيس Icon يمثل الأيقونة التي سيتم وضعها كعنوان. |
|
public JLabel(Icon image, int horizontalAlignment)
ينشئ كائن من الكلاس JLabel يمثل أيقونة كعنوان مع إمكانية تحديد موقع ظهور أيقونة العنوان في النافذة.
الثوابت التي يمكن تمريرها مكان البارميتر horizontalAlignment : LEFT , CENTER , RIGHT , LEADING و TRAILING |
|
public JLabel(String text, Icon image, int horizontalAlignment)
ينشئ كائن من الكلاس JLabel يمثل نص و أيقونة معاً كعنوان.
الثوابت التي يمكن تمريرها مكان البارميتر horizontalAlignment : LEFT , CENTER , RIGHT , LEADING و TRAILING |
دوال الكلاس JLabel
الجدول التالي يحتوي على بعض دوال الكلاس JLabel
.
الدالة مع تعريفها | |
---|---|
public String getText()
ترجع نص كائن الـ JLabel الذي قام بإستدعائها كـ String . |
|
public void setText(String text )
تستخدم لتبديل نص كائن الـ JLabel الذي قام بإستدعائها.مكان الباراميتر text نضع النص الجديد. |
|
public int getHorizontalAlignment()
ترجع رقم نوعه int يمثل موقع ظهور نص و أيقونة كائن الـ JLabel الذي قام بإستدعائها في عرض النافذة. |
|
public void setHorizontalAlignment(int alignment)
تستخدم لتحديد موقع ظهور نص و أيقونة كائن الـ JLabel الذي قام بإستدعائها في عرض النافذة.مكان الباراميتر alignment نضع إسم إحدى ثوابت الإنترفيس SwingConstants : LEFT , CENTER , RIGHT , LEADING و TRAILING |
|
public int getVerticalAlignment()
ترجع رقم نوعه int يمثل موقع ظهور نص و أيقونة كائن الـ JLabel الذي قام بإستدعائها في طول النافذة. |
|
public void setVerticalAlignment(int alignment)
تستخدم لتحديد موقع ظهور نص و أيقونة كائن الـ JLabel الذي قام بإستدعائها في طول النافذة.مكان الباراميتر alignment نضع إسم إحدى ثوابت الإنترفيس SwingConstants : TOP , CENTER و BOTTOM . |
|
public Icon getIcon()
ترجع أيقونة كائن الـ JLabel الذي قام بإستدعائها ككائن نوعه Icon .ترجع null في حال كان لا يملك أيقونة. |
|
public void setIcon(Icon icon)
تستخدم لوضع أيقونة لكائن الـ JLabel الذي قام بإستدعائها.مكان الباراميتر icon نضع كائن من الإنترفيس Icon يمثل الأيقونة التي ستوضع إلى جانب نص كائن الـ JLabel . |
أمثلة شاملة في الكلاس JLabel
Java Swing طريقة إنشاء JLabel
هذا المثال يعلمك طريقة إنشاء كائن من الكلاس JLabel
و إضافته في النافذة.
مثال طريقة إنشاء كائن من الكلاس JLabel
و إضافته في النافذة.
import javax.swing.JFrame; import javax.swing.JLabel; import java.awt.FlowLayout; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("JLabel demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس frame.setSize(300, 250); // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 250 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج frame.setLayout(new FlowLayout()); // حتى نجعل الأشياء التي نضيفها في النافذة تترب وراء بعضها و في وسط النافذة FlowLayout إستخدمنا الـ JLabel label = new JLabel("Welcome to Swing"); // Label أي قمنا بإنشاء JLabel هنا أنشأنا كائن من الكلاس frame.add(label); // frame في الـ label هنا أضفنا الـ frame.setVisible(true); // هنا جعلنا النافذة مرئية } }
•ستظهر لك النافذة التالية عند التشغيل.
Java Swing طريقة تغيير نوع و حجم الخط الـ JLabel
هذا المثال يعلمك طريقة تغيير نوع و حجم الخط لكائن الـ Jlabel
.
مثال طريقة تغيير نوع و حجم الخط لكائن الـ Jlabel
.
import javax.swing.JFrame; import javax.swing.JLabel; import java.awt.FlowLayout; import java.awt.Font; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("JLabel demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس frame.setSize(300, 250); // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 250 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج frame.setLayout(new FlowLayout()); // حتى نجعل الأشياء التي نضيفها في النافذة تترب وراء بعضها و في وسط النافذة FlowLayout إستخدمنا الـ Font newFont = new Font("Serif", Font.BOLD, 25); // حجمه 25 serif يمثل نوع خط عريض إسمه Font هنا أنشأنا كائن من الكلاس JLabel label = new JLabel("Welcome to Swing"); // Label أي قمنا بإنشاء JLabel هنا أنشأنا كائن من الكلاس label.setFont(newFont); // newFont يستخدم الـ label هنا جعلنا الـ frame.add(label); // frame في الـ label هنا أضفنا الـ frame.setVisible(true); // هنا جعلنا النافذة مرئية } }
•ستظهر لك النافذة التالية عند التشغيل.
Java Swing طريقة تغيير نوع و لون و حجم الخط الـ JLabel
هذا المثال يعلمك طريقة تغيير نوع و حجم و لون الخط لكائن الـ Jlabel
.
مثال طريقة تغيير نوع و حجم و لون الخط لكائن الـ Jlabel
.
import java.awt.Color; import javax.swing.JFrame; import javax.swing.JLabel; import java.awt.FlowLayout; import java.awt.Font; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("JLabel demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس frame.setSize(300, 250); // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 250 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج frame.setLayout(new FlowLayout()); // حتى نجعل الأشياء التي نضيفها في النافذة تترب وراء بعضها و في وسط النافذة FlowLayout إستخدمنا الـ Font newFont = new Font("Arial", Font.BOLD, 18); // حجمه 18 Arial يمثل نوع خط عريض إسمه Font هنا أنشأنا كائن من الكلاس JLabel label_1 = new JLabel("label 1"); // Label أي قمنا بإنشاء JLabel هنا أنشأنا كائن من الكلاس label_1.setFont(newFont); // newFont يستخدم الـ label هنا جعلنا الـ JLabel label_2 = new JLabel("label 2"); // Label أي قمنا بإنشاء JLabel هنا أنشأنا كائن من الكلاس label_2.setFont(newFont); // newFont يستخدم الـ label هنا جعلنا الـ JLabel label_3 = new JLabel("label 3"); // Label أي قمنا بإنشاء JLabel هنا أنشأنا كائن من الكلاس label_3.setFont(newFont); // newFont يستخدم الـ label هنا جعلنا الـ label_1.setForeground(Color.blue); // إلى اللون الأزرق label_1 هنا قمنا بتغيير لون الـ label_2.setForeground(Color.red); // إلى اللون الأحمر label_2 هنا قمنا بتغيير لون الـ label_3.setForeground(Color.gray); // إلى اللون الرمادي label_3 هنا قمنا بتغيير لون الـ frame.add(label_1); // frame في الـ label_1 هنا أضفنا الـ frame.add(label_2); // frame في الـ label_2 هنا أضفنا الـ frame.add(label_3); // frame في الـ label_3 هنا أضفنا الـ frame.setVisible(true); // هنا جعلنا النافذة مرئية } }
•ستظهر لك النافذة التالية عند التشغيل.
Java Swing طريقة عرض الوقت في JLabel
هذا المثال يعلمك طريقة إنشاء نافذة تعرض الوقت الحالي للمستخدم.
سنستخدم الكلاس Date
لنحصل على الوقت الحالي. و سنستخدم Thread لعرض الوقت الحالي كل ثانية.
مثال طريقة إنشاء نافذة تعرض الوقت الحالي للمستخدم.
import java.awt.Color; import javax.swing.JFrame; import javax.swing.JLabel; import java.awt.FlowLayout; import java.awt.Font; import java.util.Date; import java.text.SimpleDateFormat; public class Main implements Runnable { static JLabel timeLabel = new JLabel(); @Override public void run() { while(!Thread.currentThread().isInterrupted()) // ( شغال Thread أي طالما أن الـ ) true لا ترجع isInterrupted() طالما أن الدالة { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss a"); timeLabel.setText(sdf.format(date)); // كل ثانية timeLabel سيتم وضع الوقت الحالي كنص للكائن try { Thread.sleep(1000); } catch(Exception e) { timeLabel.setText(e.getMessage()); // timeLabel في حال حدث أي خطأ سيتم وضعه كنص للكائن timeLabel.setForeground(Color.red); // و سيتم تلوينه باللون الأحمر } } } public static void main(String[] args) { JFrame frame = new JFrame("Display Time"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس frame.setSize(350, 70); // هنا قمنا بتحديد حجم النافذة. عرضها 350 و طولها 70 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج frame.setLayout(new FlowLayout()); // حتى نجعل الأشياء التي نضيفها في النافذة تترب وراء بعضها و في وسط النافذة FlowLayout إستخدمنا الـ Font newFont = new Font("Arial", Font.BOLD, 20); // حجمه 20 Arial يمثل نوع خط عريض إسمه Font هنا أنشأنا كائن من الكلاس timeLabel.setFont(newFont); // newFont يستخدم الـ TimeLabel هنا جعلنا الـ timeLabel.setForeground(Color.blue); // إلى اللون الأزرق TimeLabel هنا قمنا بتغيير لون الـ frame.add(timeLabel); // frame في الـ TimeLabel هنا أضفنا الـ frame.setVisible(true); // هنا جعلنا النافذة مرئية Thread t = new Thread(new Main()); // Runnable نفسه لأنه يطبق الإنترفيس Main() مبني على كائن من الكلاس Thread هنا قمنا بإنشاء كائن من الكلاس t.start(); // و التي بدورها ستعرض لنا الوقت كل ثانية run() أي سيتم إستدعاء الدالة thread هنا قمنا بتشغيل كائن الـ } }
•ستظهر لك النافذة التالية عند التشغيل و الوقت سيتغير بشكل تلقائي كل ثانية.