Java Swing الكلاس JComboBox
الكلاس JComboBox
يستخدم لإضافة قائمة منسدلة (Combo Box) في واجهة المستخدم.
هذه القائمة تظهر فقط الخيار الذي قام المستخدم بإختياره منها.
بنا الكلاس JComboBox
public class JComboBox<E> extends JComponent implements ItemSelectable, ListDataListener, ActionListener, Accessible
كونستركتورات الكلاس JComboBox
الجدول التالي يحتوي على كونستركتورات الكلاس JComboBox
.
الكونستركتور مع تعريفه | |
---|---|
public JComboBox()
ينشئ كائن من الكلاس JComboBox يمثل Combo Box فارغة, أي لا تحتوي أي عنصر.لإضافة خيارات فيها نستخدم الدالة addItem() . |
|
public JComboBox(Object[] Items)
ينشئ كائن من الكلاس JComboBox يمثل Combo Box فيها خيارات جاهزة.مكان الباراميتر items نمرر مصفوفة من أي نوع.عناصر هذه المصفوفة هي التي ستظهر كخيارات في القائمة. |
|
public JComboBox(Vector<E> items)
ينشئ كائن من الكلاس JComboBox يمثل Combo Box فيها خيارات جاهزة.مكان الباراميتر items نمرر كائن من الكلاس Vector .عناصر الكائن Vector هي التي ستظهر كخيارات في القائمة. |
دوال الكلاس JComboBox
الجدول التالي يحتوي على بعض دوال الكلاس JComboBox
.
الدالة مع تعريفها | |
---|---|
public void addActionListener(ActionListener al)
تستخدم لتنفيذ أوامر معينة عند النقر على كائن الـ JComboBox الذي قام بإستدعائها.مكان الباراميتر al نضع كائن من الكلاس ActionListener و نفعل بداخله Override لدالة إسمها actionPerformed(ActionEvent ae) . |
|
public void addItem(Object item)
تستخدم لإضافة عنصر جديد في كائن الـ JComboBox الذي قام بإستدعائها.العنصر الذي يتم إضافته يوضع في آخرها. مكان الباراميتر item نمرر لها كائن من أي نوع. |
|
public void insertItemAt(Object item, int index)
تستخدم لإضافة عنصر جديد في مكان محدد في كائن الـ JComboBox الذي قام بإستدعائها.مكان الباراميتر item نمرر لها كائن من أي نوع.مكان الباراميتر index نمرر رقم Index يحدد المكان الذي سيتم إضافة العنصر فيه. |
|
public void removeItem(Object item)
تستخدم لحذف عنصر موجود في كائن الـ JComboBox الذي قام بإستدعائها.مكان الباراميتر item نمرر كائن يمثل العنصر الذي سيتم حذفه. |
|
public void removeItemِAt(int index)
تستخدم لحذف عنصر موجود في كائن الـ JComboBox الذي قام بإستدعائها.مكان الباراميتر index نمرر رقم index العنصر الذي سيتم حذفه. |
|
public void removeAllItems()
تستخدم لحذف لحذف جميع عناصر كائن الـ JComboBox الذي قام بإستدعائها. |
|
public void setMaximumRowCount(int count)
تستخدم لتحديد عدد العناصر الأقصى التي يمكن أن تظهر في كائن الـ JComboBox الذي قام بإستدعائها دفعة واحدة.مكان الباراميتر count نضع رقم يمثل عدد العناصر الأقصى التي يمكن أن تظهر في كائن الـ JComboBox عند النقر عليه.كما أنها تضيف Scroll Bar عند الحاجة حتى تستطيع رؤية جميع العناصر الموجودة. |
|
public int getItemCount()
ترجع عدد العناصر الموجودة في كائن الـ JComboBox الذي قام بإستدعائها. |
|
public Object getSelectedItem()
ترجع العناصر الذي قام المستخدم باختياره في كائن الـ JComboBox الذي قام بإستدعائها. |
طريقة إنشاء JComboBox
المثال التالي يعلمك طريقة إنشاء كائن من الكلاس JComboBox
لا يحتوي على أي عناصر و إضافته في النافذة.
مثال إنشاء كائن من الكلاس JComboBox
لا يحتوي على أي عناصر و إضافته في النافذة.
import javax.swing.JFrame; import javax.swing.JComboBox; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("JComboBox demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس frame.setSize(300, 250); // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 250 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج frame.setLayout(null); // في النافذة بنفسنا Combo Box لذلك سنقوم بتحديد مكان الـ Layout Manager أي لم نستخدم أي null هنا وضعنا JComboBox comboBox = new JComboBox(); // لا يحتوي على عناصر Combo Box بإستخدام الكونستركتور الإفتراضي. أي قمنا بإنشاء JComboBox هنا أنشأنا كائن من الكلاس comboBox.setBounds(90, 40, 100, 30); // frame في الـ Combo Box هنا قمنا بتحديد حجم و موقع الـ frame.add(comboBox); // frame في الـ comboBox هنا أضفنا الـ frame.setVisible(true); // هنا جعلنا النافذة مرئية } }
•ستظهر لك النافذة التالية عند التشغيل.
طريقة إنشاء JComboBox
يحتوي على عناصر
المثال التالي يعلمك طريقة إنشاء كائن من الكلاس JComboBox
يحتوي على عناصر.
مثال إنشاء كائن من الكلاس JComboBox
يحتوي على عناصر.
import javax.swing.JFrame; import javax.swing.JComboBox; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("JComboBox demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس frame.setSize(300, 250); // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 250 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج frame.setLayout(null); // في النافذة بنفسنا Combo Box لذلك سنقوم بتحديد مكان الـ Layout Manager أي لم نستخدم أي null هنا وضعنا String[] items = { "java", "php", "c", "c++" , "html" }; // هنا قمنا بتعريف مصفوفة من الكلمات JComboBox comboBox = new JComboBox( items ); // له كعناصر items و وضعنا عناصر المصفوفة Combo Box أي قمنا بإنشاء JComboBox هنا أنشأنا كائن من الكلاس comboBox.setBounds(90, 40, 100, 30); // frame في الـ Combo Box هنا قمنا بتحديد حجم و موقع الـ frame.add(comboBox); // frame في الـ comboBox هنا أضفنا الـ frame.setVisible(true); // هنا جعلنا النافذة مرئية } }
•ستظهر لك النافذة التالية عند التشغيل. قم بالنقر على الـ Combo Box لتظهر لك الخيارات التي بداخله أيضاً.
طريقة تغيير نوع و حجم ولون خط عناصر الـ JComboBox
المثال التالي يعلمك طريقة تغيير نوع و حجم و لون خط عناصر كائن الـ JComboBox
.
مثال على تغيير نوع و حجم و لون خط عناصر كائن الـ JComboBox
.
import javax.swing.JFrame; import javax.swing.JComboBox; import java.awt.Color; import java.awt.Font; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("JComboBox demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس frame.setSize(300, 250); // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 250 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج frame.setLayout(null); // في النافذة بنفسنا Combo Box لذلك سنقوم بتحديد مكان الـ Layout Manager أي لم نستخدم أي null هنا وضعنا String[] items = { "java", "php", "c", "c++" , "html" }; // هنا قمنا بتعريف مصفوفة من الكلمات JComboBox comboBox = new JComboBox( items ); // له كعناصر items و وضعنا عناصر المصفوفة Combo Box أي قمنا بإنشاء JComboBox هنا أنشأنا كائن من الكلاس comboBox.setBounds(90, 40, 100, 30); // frame في الـ comboBox هنا قمنا بتحديد حجم و موقع الـ Font newFont = new Font("Arial", Font.BOLD, 16); // حجمه 16 Arial يمثل نوع خط عريض إسمه Font هنا أنشأنا كائن من الكلاس comboBox.setFont(newFont); // newFont يستخدم الـ comboBox هنا جعلنا الـ comboBox.setForeground(Color.cyan); // comboBox هنا قمنا بتغير لون كلمات الـ comboBox.setBackground(Color.gray); // comboBox هنا قمنا بتغير لون خلفية الـ frame.add(comboBox); // frame في الـ comboBox هنا أضفنا الـ frame.setVisible(true); // هنا جعلنا النافذة مرئية } }
•ستظهر لك النافذة التالية عند التشغيل. قم بالنقر على الـ Combo Box لتظهر لك الخيارات التي بداخله أيضاً.
طريقة معرفة العنصر الذي قام المستخدم باختياره من ضمن العناصر الموجودة في JComboBox
المثال التالي يعلمك طريقة معرفة العنصر الذي قام المستخدم باختياره من ضمن العناصر الموجودة في كائن الـ JComboBox
.
مثال على معرفة العنصر الذي قام المستخدم باختياره من ضمن العناصر الموجودة في كائن الـ JComboBox
.
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JLabel; public class Main { // هنا قمنا بإنشاء النافذة و جميع الأشياء التي سنضعها فيها static JFrame frame = new JFrame("JComboBox demo"); static String[] items = { "java", "php", "c", "c++" , "html" }; static JComboBox comboBox = new JComboBox( items ); static JButton button = new JButton("View Selected Item"); static JLabel label = new JLabel(); public static void main(String[] args) { // frame هنا قمنا بتحديد أماكن الأشياء التي سنضيفها في الـ comboBox.setBounds(40, 40, 100, 30); button.setBounds(160, 40, 150, 30); label.setBounds(40, 80, 200, 30); // frame هنا قمنا بإضافة جميع الأشياء التي قمنا بتعريفها سابقاً في الـ frame.add(comboBox); frame.add(button); frame.add(label); // frame هنا قمنا بتحديد خصائص الـ frame.setSize(360, 250); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(null); frame.setVisible(true); // button هنا نضع الأوامر التي نريد تنفيذها عند النقر على الـ button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // label يظهر كنص للـ comboBox هنا جعلنا الخيار الذي يقوم المستخدم باختياره من الـ label.setText("You select: "+comboBox.getSelectedItem()); } }); } }
•ستظهر لك النافذة التالية عند التشغيل. أنقر على الزر ليظهر لك الخيار الذي قمت باختياره.
طريقة جعل المستخدم يقوم بإضافة أو حذف عناصر في JComboBox
و إظهار عدد جميع العناصر الموجودة فيه
المثال التالي يعلمك طريقة جعل المستخدم يقوم بإضافة أو حذف عناصر في كائن الـ JComboBox
. بالإضافة إلى إظهار عدد جميع العناصر الموجودة فيه.
مثال على جعل المستخدم يقوم بإضافة أو حذف عناصر في كائن الـ JComboBox
.
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JTextField; public class Main { // هنا قمنا بإنشاء النافذة و جميع الأشياء التي سنضعها فيها static JFrame frame = new JFrame("JComboBox demo"); static JComboBox comboBox = new JComboBox(); static JButton addButton = new JButton("Add Item"); static JButton removeButton = new JButton("Remove Selected Item"); static JButton removeAllButton = new JButton("Remove All Items"); static JLabel counterLabel = new JLabel("Total items = 0"); static JTextField textField = new JTextField(); public static void main(String[] args) { // frame هنا قمنا بتحديد أماكن الأشياء التي سنضيفها في الـ textField.setBounds(40, 40, 110, 30); addButton.setBounds(170, 40, 120, 30); removeButton.setBounds(40, 80, 250, 30); removeAllButton.setBounds(40, 120, 250, 30); comboBox.setBounds(310, 40, 140, 30); counterLabel.setBounds(310, 80, 140, 30); // frame هنا قمنا بإضافة جميع الأشياء التي قمنا بتعريفها سابقاً في الـ frame.add(textField); frame.add(addButton); frame.add(removeButton); frame.add(removeAllButton); frame.add(comboBox); frame.add(counterLabel); // frame هنا قمنا بتحديد خصائص الـ frame.setSize(500, 250); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(null); frame.setVisible(true); // addButton هنا نضع الأوامر التي نريد تنفيذها عند النقر على الـ addButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // إذا كان مربع النص غير فارغ و قام المستخدم بالنقر على الزر, عندها سيتم إضافته if( !textField.getText().equals("") ) { comboBox.addItem(textField.getText()); counterLabel.setText("Total Items = "+ comboBox.getItemCount()); } } }); // removeButton هنا نضع الأوامر التي نريد تنفيذها عند النقر على الـ removeButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // سيتم حذف العنصر الحالي بشرط وجود عنصر واحد على الأقل فيها if( comboBox.getItemCount() > 0 ) { comboBox.removeItemAt(comboBox.getSelectedIndex()); counterLabel.setText("Total Items = "+ comboBox.getItemCount()); } } }); // removeAllButton هنا نضع الأوامر التي نريد تنفيذها عند النقر على الـ removeAllButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // عند النقر على هذا الزر, سيتم حذف جميع العناصر comboBox.removeAllItems(); counterLabel.setText("Total Items = "+ comboBox.getItemCount()); } }); } }
•ستظهر لك النافذة التالية عند التشغيل. قم بتجربته بإضافة و حذف بعض العناصر.