2009-10-09 3 views
6

Ho generato una GUI da netbeans in cui ho inserito anche una casella combinata.Netbeans - Inserimento di elementi in un jComboBox

Per impostazione predefinita, gli elementi nella casella combinata sono item1, item2, item3, item4.

Ma io voglio i miei oggetti. Netbeans non consente la modifica del codice generato, quindi come posso modificare il comnbobox secondo me.

Nota: conosco un metodo modificando la proprietà "model" di quel jComboBox ma non voglio farlo in questo modo perché voglio vari elementi (che sono in un array) in quel jComboBox così voglio passare tale matrice in quel JComboBox come la seguente:

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)); 

risposta

2

è possibile iniettare il codice utilizzando "codice personalizzato" caratteristica nell'editor GUI per il "modello" di Casella combinata

+0

Sì, così quello che sarebbe quello sguardo codice come? –

7

ci sono 2 approcci sono a conoscenza di:

  1. Approccio semplice: dopo la chiamata a initComponents() nel costruttore, aggiungere il codice per creare il modello e chiamare jComboBox2.setModel(myModel) per impostarlo. Così il costruttore sarebbe simile:

    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. approccio complesso - aggiungere una proprietà leggibile che contiene il modello desiderato. Ad esempio:

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

    Quindi, nella finestra delle proprietà di jComboBox2, fare clic sul pulsante per modificare il modello.

    Nel pannello dell'editor modificare il menu a discesa da Combo Box Model Editor a Value from existing component.

    Selezionare Property. Scegli la proprietà comboBoxModel. Fare clic su OK

Ho provato il secondo modo una volta. Mai veramente usato di nuovo. Troppo lavoro, nessun vero guadagno. Inoltre mostra una casella combinata vuota nella finestra di progettazione che rende il layout più difficile.

Io uso il primo approccio, oltre a utilizzare l'editor di modelli di NetBean per fornire alcuni valori rappresentativi per il modello. Ciò mi dà il ragionevole comportamento delle dimensioni nel progettista al costo di una riga non necessaria in initComments().

0

Completamento della risposta di blurec (non posso ancora commentare), nell'editor della GUI selezionare la casella di controllo, andare proprietà, quindi modello, quindi premere i tre punti. Quindi selezionare Codice Custome e aggiungere il codice, per esempio:

new DefaultComboBoxModel<>(functionThatReturnsAnStringArray()) 
0

Utilizzando Netbeans al neon e altri NetBeans versione

1. Passare alle proprietà della casella combinata

enter image description here

2.Poi vai a modellare

enter image description here

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

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

Si prega di includere commenti sul perché questa soluzione funziona e risponde alla domanda –