آموزش JComboBox در جاوا
سلام دوستان در این سری از آموزش برنامه نویسی جاوا به آموزش JComboBox در جاوا می پردازیم از ComboBox به منظور نمایش یک لیست از داده ها استفاده می شود ComboBox به popup menu نیز معروف است زیرا بعد از کلیک بروی ComboBox به صورت یک منو pop menu باز خواهد شد در ادامه با ما همراه باشید تا نحوه استفاده از JComboBox را یاد گیرید.
در بالا ویژگی های JComboBox را بیان کردیم در ادامه Constructor های آن را بررسی می کنیم.
JComboBox دارای دو Constructor مختلف است که عبارتند از :
- JComboBox() : ساده ترین Constructor مربوط به JComboBox که داده model خاصی ندارد.
- JComboBox(Object[] items : این Constructor لیستی از داده های ورودی را به صورت آرایه باید وارد کرد.
برخی از متدهای JComboBox را که مهمتر هستند در ادامه بررسی خواهیم کرد.
addItem : برای اضافه کردن المان یا آیتم استفاده می شود.
removeItem : برای حذف آیتم یا المان استفاده می شود.
removeAllItems : برای حذف تمامی المان ها یا آیتم ها استفاده می شود.
setEditable : این ویژگی مقدار true و false را می پذیرد و باعث می شود تا آیتم های Combobox قابل ویرایش باشد.
addActionListener : برای تعریف رویداد کلیک از این ویژگی می توان استفاده کرد.
addItemListener : برای اینکه متوجه شویم کدام یک از آیتم ها انتخاب شده است می توان از این ویژگی JComboBox استفاده کرد.
در ادامه به یک مثال کاربردی خواهیم پرداخت.
یک کلاس به نام ComboBoxExample ایجاد کنید و کدهای زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import javax.swing.*; public class ComboBoxExample { JFrame f; ComboBoxExample(){ f=new JFrame("ComboBox Example"); String country[]={"India","Aus","U.S.A","England","Newzealand"}; JComboBox cb=new JComboBox(country); cb.setBounds(50, 50,90,20); f.add(cb); f.setLayout(null); f.setSize(400,500); f.setVisible(true); } public static void main(String[] args) { new ComboBoxExample(); } } |
در بالا یک Combobox شامل یکسری آیتم ایحاد کردیم و آن کنترل را به JFrame اضافه کردیم.
خروجی کد بالا همانند زیر خواهد بود.
در ادامه به یک مثال همراه با دکمه با استفاده از addActionListener برای شما قرار میدهیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | import javax.swing.*; import java.awt.event.*; public class ComboBoxExample { JFrame f; ComboBoxExample(){ f=new JFrame("ComboBox Example"); final JLabel label = new JLabel(); label.setHorizontalAlignment(JLabel.CENTER); label.setSize(400,100); JButton b=new JButton("Show"); b.setBounds(200,100,75,20); String languages[]={"C","C++","C#","Java","PHP"}; final JComboBox cb=new JComboBox(languages); cb.setBounds(50, 100,90,20); f.add(cb); f.add(label); f.add(b); f.setLayout(null); f.setSize(350,350); f.setVisible(true); b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String data = "Programming language Selected: " + cb.getItemAt(cb.getSelectedIndex()); label.setText(data); } }); } public static void main(String[] args) { new ComboBoxExample(); } } |
خروجی کد بالا همانند زیر خواهد بود.
برای اینکه در لحظه متوجه شویم کدام یک از آیتم ها انتخاب شده باید از addItemListener استفاده کنیم در ادامه یک مثال از آن برای شما قرار میدهیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | import java.awt.BorderLayout; import java.awt.ItemSelectable; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.JComboBox; import javax.swing.JFrame; public class ItemListenerSelectingComboSample { static private String selectedString(ItemSelectable is) { Object selected[] = is.getSelectedObjects(); return ((selected.length == 0) ? "null" : (String) selected[0]); } public static void main(String args[]) { String labels[] = { "A", "B", "C", "D", "E", "F" }; JFrame frame = new JFrame("Selecting JComboBox"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JComboBox comboBox = new JComboBox(labels); frame.add(comboBox, BorderLayout.SOUTH); ItemListener itemListener = new ItemListener() { public void itemStateChanged(ItemEvent itemEvent) { int state = itemEvent.getStateChange(); System.out.println((state == ItemEvent.SELECTED) ? "Selected" : "Deselected"); System.out.println("Item: " + itemEvent.getItem()); ItemSelectable is = itemEvent.getItemSelectable(); System.out.println(", Selected: " + selectedString(is)); } }; comboBox.addItemListener(itemListener); frame.setSize(400, 200); frame.setVisible(true); } } |
موفق باشید.