Aggiunta dynamic di elementi a un JComboBox

Vector comboBoxItems = new Vector(); DefaultComboBoxModel model; // ComboBox Items have gotten from Data Base initially. model = new DefaultComboBoxModel(ComboBoxItems); JComboBox box = new JComboBox(model); 

Ho aggiunto questa casella combinata a un pannello. Se aggiungo alcuni elementi nel database direttamente, voglio che quelli appena aggiunti mostrino nella casella combinata.

Posso vedere i valori in comboBoxItems quando comboBoxItems debug, ma quei valori non compaiono nella mia casella combinata.

Come posso ottenere quei nuovi valori aggiunti nella casella combinata senza chiudere il pannello?

Che ne dici di usare ComboBoxModel? Qualcosa come questo….

  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 actionPerformsd(ActionEvent ae) { model.addElement("F"); } }); frame.setVisible(true); 

per esempio:

inserisci la descrizione dell'immagine quiinserisci la descrizione dell'immagine quiinserisci la descrizione dell'immagine qui

 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 actionPerformsd(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(); } }); } } 

Aggiunta dynamic di elementi come JComboBox, JTextField e ImageIcon

Per favore, mostra questa immagine sul display, quanti elementi sono stati aggiunti o la dimensione dei campi della tabella

Dopo la seconda immagine vengono visualizzati su elementi come JComboBox, JTextField e 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