Visualizzazione dei risultati da 1 a 6 su 6

Discussione: JButton e JComboBox

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480

    JButton e JComboBox

    Ciao a tutti
    ho creato 2 JButton e 1 JComboBox.
    Vorrei collegare le loro funzionalità, cioè se clicco sul JButton1 vorrei che nella lista del JComboBox mi appaia una lista di elementi e se invece clicco sul JButton2 un'altra lista di elementi.
    Potete suggerirmi come posso fare?
    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,325
    JComboBox usa un ComboBoxModel per il trattamento della lista di valori.
    Hai 3 possibilità:

    1) Crei il JComboBox passandogli un'istanza di DefaultComboBoxModel e usi questa istanza per manipolare i dati (ad ogni clic, svuoti il modello tramite il metodo removeAllElements() e lo riempi con i nuovi valori)

    2) Ad ogni clic su un pulsante crei un nuovo ComboBoxModel e lo vai a settare al JComboBox tramite il metodo setModel()

    3) Crei una tua classe che estende ComboBoxModel che preveda dei metodi per la ri-pulitura dell'elenco di Items e l'aggiunta di nuovi Items; quindi crei il JComboBox usando questo model e non quello di default (che è immutabile)


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Posso considerare la lista degli item facendo riferimento agli elementi contenuti in una directory ?
    Cioè, cliccando sul JButton1 questo fa riferimento alla cartella "A" dove va a prendere i nomi delle sottocartelle contenute in essa e li mette nella lista della JComboBox ?
    (stessa cosa per il JButton2 che farà riferimento invece alla cartella "B" )
    O devo per forza elencare gli item , tipo enumerazione ?
    Ultima modifica di roquentin; 29-08-2014 a 18:27

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Ho fatto in questo modo ma non riesco ad andare avanti
    codice:
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            String[] africa = {"Nairobi", "Luanda"};
            JComboBox africaList = new JComboBox(africa);
            
        }                                        
    
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            String[] europa = {"Stoccolma", "Roma"};
            JComboBox europaList = new JComboBox(europa);
            
            
        }                                        
    
        private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
            jComboBox1.setModel(europaList);
        }
    ovviamente non mi vede europaList dato che la classe è privata. Come posso fare?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Ho fatto in questo modo:
    codice:
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            String[] africaLista = {"Algeri", "Nairobi"};
            DefaultComboBoxModel modello = new DefaultComboBoxModel();
            modello.addElement(africaLista);
            jComboBox1.setModel(modello); 
        }                                        
    
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            DefaultComboBoxModel modello = new DefaultComboBoxModel();
            modello.addElement("Stoccolma");
            modello.addElement("Roma");
            jComboBox1.setModel(modello);   
        }
    ma per il secondo bottone non va, forse sbaglio il metodo (addElement) per l'array ??
    Cioè gli elementi devo metterli per forza come faccio nel primo jbutton, cioè inserirli singolarmente?
    Ultima modifica di roquentin; 30-08-2014 a 12:22

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Ho risolto così:
    codice:
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            String[] africaLista = {"Algeri", "Nairobi"};
            DefaultComboBoxModel modello = new DefaultComboBoxModel();
            int i;
            for (i=0; i < 10; i++){
            modello.addElement(africaLista[i]);
            jComboBox1.setModel(modello); 
            }
        }                                        
    
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            String[] europaLista = {"Stoccolma", "Roma"};
            DefaultComboBoxModel modello = new DefaultComboBoxModel();
            int i;
            for (i=0; i < 10; i++){
            modello.addElement(europaLista[i]);
            jComboBox1.setModel(modello); 
            }  
        }                                        
    
        private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
            
        }
    ma non so se è il modo migliore. Cosa ne pensate?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.