Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    76

    Aggiungere un String [ ] ad un JComboBox

    Per passare ad un JComboBox un array di stringhe si può farlo solo nel costruttore? A me interessava aggiungere un array di stringhe durante l’esecuzione del programma, una cosa del tipo:

    String[ ] elencoElementi = {"elemento1", " elemento2", " elemento3"};
    comboBox.removeAllItems();
    comboBox. addItem (elencoElementi);

    invece di dover aggiungere uno per uno gli elementi:

    comboBox. addItem ("elemento1");
    comboBox. addItem ("elemento2");
    comboBox. addItem ("elemento3");

    Grazie!

  2. #2
    a leggere la documentazione, si dovrebbe poter fare:

    JComboBox(Object[] items)
    Creates a JComboBox that contains the elements in the specified array.
    ti da' per caso qualche errore?
    and the black stones under my bare feet
    cold and smooth like her milk-white palm
    and the silence which falls upon this shore
    resounds now louder than oncoming storm
    for all is gone

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    No, ma infatti krisc1 vorrebbe poter passare ad un ipotetico addItems un vettore di Object e lasciare che sia java ad occuparsene dell'aggiunta senza dover passare da addItem singolo.

    Mi sembra di aver letto che ti stavi occupando della customizzazione di JComboBox in un post precedente... potresti aggiungere ad una ipotetica classe che estende JComboBox un metodo addItem(Object[] ob) che si occupi in modo trasparente al programmatore di aggiungere l'intero vettore tramite un ciclo for di addItem
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    76
    xplorer87 non mi da nessun errore... è come dice Andrea1979.

    Andrea1979 è quello che volevo fare... e nella customizzazione volevo fare un metodo per aggiungere automaticamente la string [] al JCombo, ed anche se è facilissimo fare un ciclo per aggiungere una stringa, pensavo che esistesse un metodo che lo facesse in automatico! E' strano che comboBox. addItem (elencoElementi); non dia errore ma scrive nel JCombo qualcosa tipo [Ljava.lang.string;@55.....]...
    mi sa che ricorrero' al for!

    Grazie ad entrambi!

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    A dire il vero, quello è normale, visto che JComboBox prende in addItem un Object... e qualsiasi cosa è tecnicamente un Object... incluso un array di Stringhe... chiaramente quello che JComboBox prova a fare in mancanza di un renderer ad-hoc è stampare il toString dell'oggetto che gli hai passato... in questo caso il nome con cui la JVM si riferisce a quell'array.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    76
    Cosa intendi per "in mancanza di un renderer ad-hoc" ?
    C'è un modo per passargli l'arrey ad-hoc? Ormai è solo per curiosità... visto che ho già aggiunto il for in un nuovo metodo del mio JCombo personalizzato!

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    no, però ad esempio potresti fare in modo che passandogli una immagine o qualche altro "strano" oggetto, la JComboBox li visualizzi "correttamente".

    Per quanto riguarda gli array, niente, dovrai per forza crearti il tuo metodo che scandisca l'array in for e aggiunga gli elementi uno alla volta. Niente di che.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    76
    Chiarissimo!!!

    Grazie!

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.