Dynamically adding items to a JComboBox

后端 未结 3 858
甜味超标
甜味超标 2020-11-27 19:33
Vector comboBoxItems = new Vector();
DefaultComboBoxModel model;
// ComboBox Items have gotten from Data Base initially.
model = new DefaultComboBoxModel(ComboBoxIte         


        
相关标签:
3条回答
  • 2020-11-27 19:40

    Dynamically adding items like JComboBox,JTextField and ImageIcon

    Please,Show this image on display, how many items added or Table Fields size

    After second images are display on Items like JComboBox,JTextField and ImageIcon

    for example : count=3
    //Dynamically Adding Items or Component above method
    public void  dya_addcomp(int count)
    {
    //Dynamicly Drop/Delete icon
     BufferedImage Drop_Tablefield = null;
     try {
         Drop_Tablefield = ImageIO.read(this.getClass().getResource("/images/drop.png"));
     } catch (IOException ex) {
         msg(" Error: drop and edit icon on Table, "+ex);
     }
     //count Items for loop executed..
     for(int i=0;i<count;i++)
     {
         //cnt++;
         //lblcount.setText("Count : "+cnt);
         JTextField txtcolnm=new JTextField("",20);
         JComboBox cmbtype=new JComboBox();
         JTextField txtcolsize=new JTextField("",20);
    
         JButton Drop_Table_Field = new JButton(new ImageIcon(Drop_Tablefield));
    
         cmbtype.addItem("INTEGER"); cmbtype.addItem("FLOAT");
         cmbtype.addItem("STRING");  cmbtype.addItem("BOOLEAN");
    
         colnamepanel.add(txtcolnm);   colnamepanel.add(cmbtype);
         colnamepanel.add(txtcolsize); colnamepanel.add(Drop_Table_Field);
    
         colnamepanel.setAutoscrolls(true);
    
         //refresh panel
         colnamepanel.revalidate();
         colnamepanel.repaint();
    
         //set the layout on Jpanel
         colnamepanel.setLayout(new FlowLayout(FlowLayout.LEFT,5,0));
    
     }
    
    0 讨论(0)
  • 2020-11-27 19:42

    How about using ComboBoxModel? Something like this....

        JFrame frame = new JFrame("Combo Box Demo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(200, 200);
        frame.setLayout(new FlowLayout());
    
        Vector comboBoxItems=new Vector();
        comboBoxItems.add("A");
        comboBoxItems.add("B");
        comboBoxItems.add("C");
        comboBoxItems.add("D");
        comboBoxItems.add("E");
        final DefaultComboBoxModel model = new DefaultComboBoxModel(comboBoxItems);
        JComboBox comboBox = new JComboBox(model);
        frame.add(comboBox);
    
        JButton button = new JButton("Add new element in combo box");
        frame.add(button);
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                model.addElement("F");
            }
        });
    
        frame.setVisible(true);
    
    0 讨论(0)
  • 2020-11-27 19:50

    for example:

    enter image description here enter image description here enter image description here

    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import javax.swing.*;
    
    public class ComboBoxSorted extends JFrame {
    
        private static final long serialVersionUID = 1L;
        private JComboBox comboBox;
        private JTextField textField;
    
        public ComboBoxSorted() {
            textField = new JTextField(15);
            textField.addActionListener(new ActionListener() {
    
                @Override
                public void actionPerformed(ActionEvent e) {
                    comboBox.addItem(textField.getText());
                    textField.setText("");
                    comboBox.showPopup();
                }
            });
    
            String[] items = {"one", "two", "three", "four", "five"};
            SortedComboBoxModel model = new SortedComboBoxModel(items);
            comboBox = new JComboBox(model);
            comboBox.setPrototypeDisplayValue("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
            JFrame frame = new JFrame("Add Item on Runtime");
            frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
            frame.add(comboBox, BorderLayout.SOUTH);
            frame.add(textField, BorderLayout.WEST);
            frame.add(new JLabel("Enter to add Item  "), BorderLayout.EAST);
            frame.pack();
            frame.setLocation(150, 150);
            frame.setVisible(true);
        }
    
        private class SortedComboBoxModel extends DefaultComboBoxModel {
    
            private static final long serialVersionUID = 1L;
    
            public SortedComboBoxModel() {
                super();
            }
    
            public SortedComboBoxModel(Object[] items) {
                Arrays.sort(items);
                int size = items.length;
                for (int i = 0; i < size; i++) {
                    super.addElement(items[i]);
                }
                setSelectedItem(items[0]);
            }
    
            public SortedComboBoxModel(Vector items) {
                Collections.sort(items);
                int size = items.size();
                for (int i = 0; i < size; i++) {
                    super.addElement(items.elementAt(i));
                }
                setSelectedItem(items.elementAt(0));
            }
    
            @Override
            public void addElement(Object element) {
                insertElementAt(element, 0);
            }
    
            @Override
            public void insertElementAt(Object element, int index) {
                int size = getSize();
                //  Determine where to insert element to keep model in sorted order            
                for (index = 0; index < size; index++) {
                    Comparable c = (Comparable) getElementAt(index);
                    if (c.compareTo(element) > 0) {
                        break;
                    }
                }
                super.insertElementAt(element, index);
            }
        }
    
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
    
                @Override
                public void run() {
                    ComboBoxSorted comboBoxSorted = new ComboBoxSorted();
                }
            });
        }
    }
    
    0 讨论(0)
提交回复
热议问题