2009-10-09 6 views
6

J'ai généré une interface graphique à partir de netbeans dans laquelle j'ai placé une zone de liste déroulante.Netbeans - Entrer des éléments dans un jComboBox

Par défaut, les éléments de la liste déroulante sont item1, item2, item3, item4.

Mais je veux mes propres articles. Netbeans ne permet pas d'éditer du code généré, alors comment puis-je éditer le comnbobox selon moi.

Note: Je connais une méthode en éditant la propriété "model" de ce jComboBox mais je ne veux pas le faire comme ça parce que je veux des éléments différents (qui sont dans un tableau) dans ce jComboBox donc je veux passer ce tableau dans cette JComboBox comme comme suit:

jComboBox2 = new javax.swing.JComboBox(); 

String [] date = new String[31]; 
for(int i = 0; i < 31; i++) { 
    date[i] = i + 1; 
} 

jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(date)); 

Répondre

2

vous pouvez injecter votre code en utilisant la fonction « code personnalisé » dans l'éditeur graphique pour le « modèle » de combobox

+0

Oui, donc ce serait ce regard de code comme? –

7

Il y a 2 approches que je suis au courant de:

  1. Approche simple - Après l'appel à initComponents() dans le constructeur, ajoutez du code pour construire votre modèle et appelez jComboBox2.setModel(myModel) pour le définir. Ainsi, le constructeur ressemblerait à quelque chose comme:

    public SomeClass() { 
        initComponents(); 
        String [] date = new String[31]; 
        for(int i = 0; i < 31; i++) { 
         date[i] = i + 1; 
        } 
        jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(date)); 
    } 
    
  2. approche complexe - ajouter une propriété lisible qui détient le modèle désiré. Par exemple:

    private ComboBoxModel getComboBoxModel() 
    { 
        String[] items = {"Item A", "Item B", "Item C"}; 
        return new DefaultComboBoxModel(items); 
    } 
    

    Ensuite, dans la feuille de propriétés jComboBox2, cliquez sur le bouton pour modifier le modèle. Dans le panneau de l'éditeur, modifiez la liste déroulante de Combo Box Model Editor à Value from existing component.

    Sélectionnez Property. Choisissez la propriété comboBoxModel. Cliquez sur OK

J'ai essayé la deuxième méthode une fois. Je ne l'ai jamais vraiment utilisé à nouveau. Trop de travail, pas vraiment de gain. De plus, il affiche une zone de liste déroulante vide dans le concepteur, ce qui rend la mise en page plus difficile.

J'utilise la première approche, plus utiliser l'éditeur de modèle de NetBean pour fournir des valeurs représentatives du modèle. Cela me donne le comportement de taille raisonnable dans le concepteur au prix d'une ligne inutile dans .

0

Fin de réponse blurec (je ne peux pas encore de commentaire), dans l'éditeur de GUI sélectionnez le comboxbox, allez propriétés, puis modèle, puis appuyez sur les trois points. Ensuite, sélectionnez le code Custome et ajoutez votre code, par exemple:

new DefaultComboBoxModel<>(functionThatReturnsAnStringArray()) 
0

En utilisant Netbeans NEON et autre version NetBeans

1. Accédez aux propriétés de la zone de liste déroulante

enter image description here

2.Ensuite, allez à modéliser

enter image description here

0
public NewJFrame() { 
     initComponents(); 
     reformatComboBox(); 
    } 

private void reformatComboBox() { 
     JComboBoxName.removeAllItems(); 
     JComboBoxName.addItem("item1"); 
     JComboBoxName.addItem("item2"); 
} 
+0

S'il vous plaît inclure des commentaires sur pourquoi cette solution fonctionne et répond à la question –

Questions connexes