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

    jList legge il contenuto di una variabile ?

    Salve a tutti ! Help me!!
    Allora non riesco a prelevare dei valori di tipo String da una variabile con un Oggetto di tipo jList !!! perchè ??? se stampo con (println) tutto ok, ma se devo ritornare semplicemente un Nome che è contenuto in una variabile in un jList tutto va a puttana perchè ? ho visto i metodi di jList ma non ho trovato metodi getText();

    System.out.print("grazie per il sostegno");

    Lealta, Onore e Gloria !!!
    Never Back Down !!!

  2. #2
    senza codice è difficile darti una risposta...
    posta qualcosa sulle righe "incriminate"
    Ciao
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    JList, infatti, non ha nessun metodo getText() (e, sinceramente, non vedo perchè dovrebbe averne, visto che non è un componente di testo, ma un contenitore di oggetti).

    JList rappresenta una lista di oggetti (oggetti di qualunque tipo). Questa lista viene presentata all'utente che può selezionarne uno (o più di uno, a seconda delle impostazioni date a JList). Ovviamente, tale oggetto consente di fare diverse cose, tra le quali quella di ottenere l'oggetto selezionato (o l'elenco di oggetti selezionati). E' questo ciò che vuoi fare? Ottenere l'oggetto selezionato? Bene... vi sono due modi per ottenere ciò:

    1) Usare il metodo getSelectedValue() / getSelectedValues()
    2) Usare il metodo getSelectedIndex() / getSelectedIndices() e agire sul model (ListModel) associato per prelevare l'oggetto a quell'indice / gli oggetti a quegli indici.

    Se sai con certezza che quell'oggetto è di un certo tipo (ad esempio una String), allora è sufficiente un cast.

    codice:
    JList miaLista = new JList();
    ...
    
    // Ottengo la stringa selezionata
    String str = (String) miaLista.getSelectedValue();
    
    // oppure
    int idx = miaLista.getSelectedIndex();
    String str = (String) miaLista.getModel().getElementAt( idx );
    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

  4. #4
    già provato ma non va...

    a me interessa prendere dei valori stringa inserirli in un JList affinchè compaiano per esempio i nomi delle persone che io ho in una variabile e poi al click sul nome aprire una nuova finestra adesso penso di aver capito che non si può fare ma se è possibile come diavolo faccio grazie mille a tutti !
    Lealta, Onore e Gloria !!!
    Never Back Down !!!

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da xxDeadLifexx
    penso di aver capito che non si può fare
    Certo che si può fare.

    Originariamente inviato da xxDeadLifexx
    a me interessa prendere dei valori stringa inserirli in un JList
    JList non ha metodi tipo addElement, insertElement, ecc.. Perché è il ListModel che gestisce la struttura dati e può avere, per una implementazione specifica come DefaultListModel, dei metodi che modificano la struttura dati.

    Quindi:
    - hai istanziato JList passando direttamente array o Vector di stringhe?
    o
    - hai usato espressamente un DefaultListModel?
    o
    - hai implementato un tuo ListModel? (se si sceglie questa opzione in genere è preferibile estendere AbstractListModel, non implementare direttamente l'interfaccia ListModel)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    ho passato direttamente una variabile che mi contiene un nome, il quale io voglio che sia inserito nella lista dell'oggetto jList così quando mi compare in nominativo dato al click sul nominativo esso deve aprirmi un frame PERò questo nominativo io lo devo prendere da un jTextField adesso mi chiedo il jList può andare a prendere questo nome che io ho immagazzinato in una variabile dopo essere stato digitato dal textField ???
    se non mi onsente di fare questo allora devo cambiare sistema...grazie mille !!!
    Lealta, Onore e Gloria !!!
    Never Back Down !!!

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da xxDeadLifexx
    ho passato direttamente una variabile che mi contiene un nome
    Passato dove e a cosa??

    Originariamente inviato da xxDeadLifexx
    voglio che sia inserito nella lista dell'oggetto jList
    Ripeto che o passi subito un array/Vector a JList (ma così il list model è cablato internamente come "read-only", insomma non puoi aggiungere elementi) oppure usi un list model "mutabile" come DefaultListModel o ne implementi uno tuo.


    Domanda: cosa non ti è chiaro di JList? I suoi metodi? Il concetto di uso di un ListModel?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Consiglio: posta un po' del codice che hai scritto perchè, davvero, è difficile capire quello che stai dicendo.

    ho passato direttamente una variabile che mi contiene un nome
    Hai passato a chi? E in che modo hai passato questa variabile? Il costruttore di JList non prevede di passare variabili stringa...

    il quale io voglio che sia inserito nella lista dell'oggetto jList
    JList è una lista, non ha una lista... al più ha un ListModel, cioè un modello di dati da cui "ricava" i dati da visualizzare...

    PERò questo nominativo io lo devo prendere da un jTextField adesso mi chiedo il jList può andare a prendere questo nome che io ho immagazzinato in una variabile dopo essere stato digitato dal textField ???
    Un JList, di per sé, non sa nulla di tutto il resto della tua applicazione... è un componente che ha "vita autonoma". Sei tu che, in risposta ad un determinato evento, devi "popolare" il JList con i dati che vuoi che questo mostri a video. Quindi, se c'è un evento che viene scatenato DOPO che l'utente ha digitato qualcosa nella JTextField (ad esempio, dopo la pressione del tasto INVIO, dopo il click su un pulsanto o altro ancora), dovrai essere tu a prelevare il contenuto dal JTextField e "aggiungerlo" al JList (ancora non ho capito perchè, ma tant'è), sfruttando ovviamente il suo ListModel.

    Quindi, come detto sopra, sarebbe più facile se tu postassi il codice... così da capire cosa stai facendo. Magari cerca anche di spiegare (per bene) cosa vuoi ottenere precisamente perchè all'inizio si capiva solo che volevi recuperare l'elemento selezionato in un JList (e ti ho fatto vedere come... sì, funziona così, fidati), poi hai fatto capire che, invece, volevi popolare il JList e non prelevare il valore selezionato, ora hai tirato in ballo una JTextField di cui non si sapeva nulla... è difficile riuscire a capirti e aiutarti in questo modo.

    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

  9. #9
    //Ripeto che o passi subito un array/Vector a JList (ma così il list model è cablato internamente //come "read-only", insomma non puoi aggiungere elementi) oppure usi un list model "mutabile" //come DefaultListModel o ne implementi uno tuo.

    //Domanda: cosa non ti è chiaro di JList? I suoi metodi? Il concetto di uso di un ListModel?
    __________________________________________________ ______
    penso di aver capito che jList non può prelevare valori stringa da un texField quindi il mio lavoro è vano comunque l'immagine ti potrà far capire ciò che voglio fare, adesso sono più confuso che mai quindi mi scuso se non sono stato chiaro XD cmq per ciò che voglio fare io cosa mi consigli di fare ? perchè creare un array per memorizzare un solo valore di tipo stringa mi sembra superfluo o meglio poco adatto allo scopo poi non so posso anke sbagliarmi....CONSIGLI ?
    Immagini allegate Immagini allegate
    Lealta, Onore e Gloria !!!
    Never Back Down !!!

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da xxDeadLifexx
    penso di aver capito che jList non può prelevare valori stringa da un texField
    JList non "sa" nulla di JTextField (o altri componenti Swing) .... sei tu che devi fare:

    String s = tuoTextField.getText();

    e poi passare quel s a .... beh, dipende cosa usi per il list model!

    Originariamente inviato da xxDeadLifexx
    quindi il mio lavoro è vano comunque l'immagine ti potrà far capire ciò che voglio fare, adesso sono più confuso che mai quindi mi scuso se non sono stato chiaro XD cmq per ciò che voglio fare io cosa mi consigli di fare ? perchè creare un array per memorizzare un solo valore di tipo stringa mi sembra superfluo o meglio poco adatto allo scopo poi non so posso anke sbagliarmi....CONSIGLI ?
    Non so come hai strutturato il codice ... ma supponiamo che in una tua classe tu abbia:

    codice:
    private DefaultListModel listModel;
    private JList list;
    
    ....
        // dove c'è la inizializzazione
        listModel = new DefaultListModel();
        list = new JList(listModel);
    
    ....
    Ogni volta che vuoi inserire una stringa nel JList, fai semplicemente:

    listModel.addElement(tuaStringa);


    P.S. Da Java 7, JList/ListModel sono "generici" e andrebbero parametrizzati es. JList<String>
    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.