Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022

    [JAVA] JComboBox e Hashtable

    Se carico dei valori in un JComboBox in questo modo

    codice:
    Hashtable hashSoggetti = new Hashtable();
        hashSoggetti.put("1", "Cliente");
        hashSoggetti.put("2", "Fornitore");
        hashSoggetti.put("3", "Cliente e Fornitore");
           
        jComboTipoSog = new JComboBox(hashSoggetti.values().toArray());
    non riesco a recuperare la chiave dell'Hashtable.
    Se uso jComboTipoSog.getSelectedItem() riesco a ricavare il valore,
    a esempio Cliente anziché 1.
    C'è un sistema semplice o bisogna sempre ricorrere a soluzioni personalizzate lavorando sul model?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022
    Ho trovato la soluzione sul forum della Sun, e la riporto per chi dovesse avere i miei stessi dubbi.

    Occorre creare una classe come questa
    codice:
    class comboKeyValue { 
      
      private String value, id;
     
        public comboKeyValue(String id, String value) {
            
            this.id = id;
            this.value = value;
        }
        public String getValue() {return value;}
        public String getId()    {return id;}    
        public String toString() {return value;}
    
    }
    Successivamente si riempie un Hashtable con le coppie chiave-valore necessarie. Si "carica" poi l'Hashtable nel JComboBox

    codice:
     
        comboKeyValue a = new comboKeyValue("1", "Cliente");
        comboKeyValue b = new comboKeyValue("2", "Fornitore"); 
        comboKeyValue c = new comboKeyValue("3", "Cliente-fornitore"); 
        
        Hashtable hashSoggetti = new Hashtable();
        hashSoggetti.put(a.getId(), a);
        hashSoggetti.put(b.getId(), b);
        hashSoggetti.put(c.getId(), c);
    
        jComboTipoSog = new JComboBox(hashSoggetti.values().toArray());
    Infine la chiave può essere richiamata in questo modo

    codice:
    comboKeyValue v = (comboKeyValue) jComboTipoSog.getSelectedItem();
    v.getId();

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 © 2024 vBulletin Solutions, Inc. All rights reserved.