Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Visualizzare arraylist in swing

    Ciao a tutti, volevo un consiglio.. Vorrei visualizzare un' ArrayList<ComponenteViaggio> (dove componenti viaggio è composto da nome e dataNascita) sulla mia interfaccia grafica.. come la posso visualizzare.. devo creare per forza una table..
    p.s. x me l'importante è visualizzare il campo nome, la data non è obbligatoria

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Visualizzare arraylist in swing

    Originariamente inviato da crystal86
    Ciao a tutti, volevo un consiglio.. Vorrei visualizzare un' ArrayList<ComponenteViaggio> (dove componenti viaggio è composto da nome e dataNascita) sulla mia interfaccia grafica.. come la posso visualizzare.. devo creare per forza una table..
    p.s. x me l'importante è visualizzare il campo nome, la data non è obbligatoria
    Potresti usare JList. Ma devi notare una cosa. Il renderer di default (quello che visualizza gli elementi nel JList) mostra semplicemente la stringa fornita dal toString() dell'oggetto fornito dal list model.

    Quindi:
    a) Se il toString() di ComponenteViaggio ritorna solo il nome, puoi istanziare un DefaultListModel e buttarci dentro tutti i tuoi oggetti.

    b) Se il toString() di ComponenteViaggio ritorna altro o comunque non solo il nome oppure se vuoi trattare direttamente il tuo ArrayList, allora devi implementare un "tuo" list model estendendo AbstractListModel.

    P.S. per il caso b) ci sono esempi tra i miei Java Examples
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: Visualizzare arraylist in swing

    Originariamente inviato da andbin
    Potresti usare JList. Ma devi notare una cosa. Il renderer di default (quello che visualizza gli elementi nel JList) mostra semplicemente la stringa fornita dal toString() dell'oggetto fornito dal list model.

    Quindi:
    a) Se il toString() di ComponenteViaggio ritorna solo il nome, puoi istanziare un DefaultListModel e buttarci dentro tutti i tuoi oggetti.
    Penso di fare così visto ke i dati mostrati non sono tanto importanti..
    Ho ridefinito il toString in ComponenteViaggio.. adesso ho creato il jlist seguendo un tuo esempio.. ma non so come passargli l'arraylist:
    codice:
      //aggiungo la jlist con i componenti del viaggio gia inseriti
                listModel = new DefaultListModel();
                JList list = new JList(listModel);
                JScrollPane scrollPane = new JScrollPane(list);
                list.add(???????);
    la classe cliente contiene un arraylist cosi composto
    codice:
    public class Cliente {
        ......
        private ArrayList<ComponenteViaggio> nominativiNucleoFamiliare;
        .....
    mentre ComponenteViaggio:
    codice:
    public class ComponenteViaggio {
           private String nome;
           private GregorianCalendar dataNascita;
           
           
           public ComponenteViaggio(String nome, GregorianCalendar dataNascita){
                this.nome=nome;
                this.dataNascita=dataNascita;
           }
       
       public String toString() {
        return "["+this.nome+" "+ this.dataNascita+ "]";
      }

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Visualizzare arraylist in swing

    Originariamente inviato da crystal86
    listModel = new DefaultListModel();
    JList list = new JList(listModel);
    Gli oggetti devi aggiungerli al DefaultListModel. DefaultListModel è un list model basato su un Vector. Quindi non puoi usare direttamente il tuo ArrayList. Fai una iterazione sul tuo ArrayList, ogni oggetto buttalo nel DefaultListModel con il suo addElement(Object obj)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    ok risolto grazie.. un ultima cosa xò.. quando ci sono molti elementi nella jlist compare la barra di scorrimento orizzontale.. io vorrei invece ke sia verticale.. come posso fare??

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da crystal86
    quando ci sono molti elementi nella jlist compare la barra di scorrimento orizzontale.. io vorrei invece ke sia verticale.. come posso fare??
    Se hai messo il JList in un JScrollPane, è già tutto automatico (ammesso che non hai specificato le policy che nascondo le barre).

    E se non usi un layout manager, devi dare una posizione/dimensione al JScrollPane .... e non al JList.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    qui ho il FlowLayout, le dimensioni le ho applicate a scrollPane.. le dimensioni mi vanno bene, e solo ke mi fa visualizzare tutti gli elementi in una riga.. e si crea la barra orizzontale, io invece vorrei l'altra

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da crystal86
    mi fa visualizzare tutti gli elementi in una riga..
    Che vuol dire in una riga???!! JList per default mostra gli elementi in verticale con 1 sola colonna.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    risolto tutto.. avevo fatto una stronzata...

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da crystal86
    listModel.addElement(cl.getnominativiNucleoFamilia re().toString());
    Ma noooooo!

    Non 1 elemento con il toString() sul ArrayList che concatena tutti gli elementi!!!

    L'ho detto prima: fai una iterazione sul tuo ArrayList, ogni singolo oggetto lo aggiungi con 1 singolo addElement() nel DefaultListModel.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.