Newsgroup: it.comp.java
Titolo: JComboBox

*** post for FREE via your newsreader at 
post.newsfeed.com
 ***
Ciao a tutti,
qualche settimana fa avevo già "postato" sull'argomento.
Premetto che, malgrado i consigli, non sono riuscito, e vi chiedo pazienza,
a risolvere il mio problema.
Il problema da me posto è quello di come riuscire, in una JComboBox, oltre a
avere l'"etichetta" (ottenuta con il metodo addItem) volessi un valore
numerico da associarli? Per spiegarmi esattamente come accade nelle combo
html in cui oltre all'"etichetta" è abbinato il parametro value.
Il consiglio che mi era stato offerto, utilizzando il tutorial della sun, di
passare al costruttore un Vector o un Object, ma sono alle prime armi e non
ne sono venuto a capo. C'è qualcuno che mi potrebbe mostrare un codice
d'esempio.
Vi ringrazio tutti per l'attenzione.
Ciao
Mr: Deckard
 -----= Posted via Newsfeed.Com, Uncensored Usenet News =-----
http://www.newsfeed.com
 - The #1 Newsgroup Service in the World!
-----== 100,000 Groups! - 19 Servers! - Unlimited Download! =-----
 

 valore numerico da associarli?
Non ho capito bene il tuo problema, spiegati meglio.
 
-- 
"difficilmente riusciremo ad arginare la diffusione dei virus finche' 
 esisteranno programmi come  u(z1...zn)=sel1(u z1...zn)=u" - Kleene


Innanzitutto grazie per la risposta.
Mi spiego col primo esempio che mi viene in mente:
Supponiamo che abbia un menu a tentina (JComboBox) nell'elenco è riportato
l'elenco delle città d'Italia.
Quando ne seleziono una vorrei recuperare ad esempio il cap associato.
Insomma qualcosa di simile alla combo in HTML
<select name="cap">
    <option value="50100">Firenze</option>
    <option value="20100">Milano</option>
  </select>
Insomma oltra lla dicitura testuale, avere la possibilità di attribuire un
valore (come nel value della select in HTML), da recuperare al momento della
selezione.
Spero di essere stato sufficientemente chiaro.
Grazie
Mr.Deckard


 Quando ne seleziono una vorrei recuperare ad esempio il cap associato.
Ok, allora e' una cosa semplice ^_^
Supponiamo che tu abbia da qualche parte una struttura dati che 
contenga degli oggetti; nel nostro caso possiamo considerare 
ogni oggetto contenuto come un tipo astratto composto dal nome della
citta' (un oggetto String) ed il suo CAP (un tipo numerico che
preferisci).
Potresti costruirti per esempio due array, uno in cui ci metti tutte
le citta' e nell'altro i CAP (fai attenzione pero' a mantenere le
corrispondenze).
Crei un JComboBox chiamando il costruttore JComboBox(Object[] items)
al quale puoi passare l'array delle citta'.
A questo punto il gioco e' fatto perche' usi il metodo
getSelectedIndex() per ottenere l'indice dell'item selezionato nella
lista e usi tale indice per accede direttamente all'array dei CAP.
Questo e' un metodo molto semplice ma poco efficente, potresti
in alternativa vedere di combinare qualcosa implementando 
l'interfaccia ComboBoxModel pero' cosi' ti complichi un po alcune cose
mentre ne semplifichi altre ^_^


selezione.
[CUT]
Ok, oggi sono buono e metto in codice ciò che ti avevo suggerito a parole 
;-)
// File: ComboTest.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ComboTest {
    public static void main(String[] args) {
        JFrame frame = new JFrame("ComboTest per Mr.Deckard");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setContentPane(buildPanel());
        frame.pack();
        frame.setVisible(true);
    }
 
    private static JPanel buildPanel() {
        JPanel p = new JPanel();
        CAPPair[] data = new CAPPair[2];
        data[0] = new CAPPair("Firenze", "50100");
        data[1] = new CAPPair("Milano", "20100");
        JComboBox cb = new JComboBox(data);
        cb.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JComboBox cb = (JComboBox)e.getSource();
                CAPPair item = (CAPPair)cb.getSelectedItem();
                System.out.println(item.cap);
            }
        });
        p.add(cb);
        return p;
    }
 
    private static class CAPPair {
        public String city;
        public String cap;
        public CAPPair(String city, String cap) {
            this.city = city;
            this.cap = cap;
        }
        public String toString() {
            return city;
        }
    }
}
HTH
-- 
Ciao
	Fabrizio C.