Mi programa tiene una GUI donde el usuario primero selecciona un botón para cargar un archivo de Excel. Luego, el contenido del archivo de Excel se enumera en JTextArea y JComboBox. Como puede ver en la imagen, aunque JTextArea contiene algunos textos, JComboBox está vacío. Depuré el código y puedo verificar que la variable de JComboBox (TheGene) agrega el elemento. En otras palabras, str contiene AARS, AARS2, ... en cada iteración.
Ejemplos que describen JComboBox agrega artículos estáticamente después de que se crea JComboBox. Quiero agregar elementos después de ejecutar algo (cuando finalice el trabajo del botón).
Estoy usando el diseñador de marcos de Netbeans, donde automáticamente genera el siguiente código
public class TheFrame extends javax.swing.JFrame { ... private javax.swing.JComboBox<String> TheGene; private void initComponents() { ... TheGene = new javax.swing.JComboBox<>(); TheGene.setMaximumRowCount(20); TheGene.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { TheGeneActionPerformed(evt); } }); ... } private void TheGeneActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: int n = theFile.getGeneNumberFromFile(); for (int i = 0; i < n; i++){ String str = theFile.getGeneNameFromFile( i ); TheGene.addItem(str); } }Podría usar un modelo para su JComboBox como:
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<String>(); JComboBox TheGene = new JComboBox( model ); y luego haciendo clic en el botón Load Gene List :
private void TheGeneActionPerformed(java.awt.event.ActionEvent evt) { model.removeAllElements(); // TODO add your handling code here: int n = theFile.getGeneNumberFromFile(); for (int i = 0; i < n; i++) { String str = theFile.getGeneNameFromFile( i ); model.addElement(str); } }Esto debería llenar los elementos del combo.