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

    recupero value di JList da valueChanged

    Buongiorno a tutti,
    sto facendo per un progetto universitario, un plug-in in Java, non sono molto pratica delle interfacce grafiche, solo che seguendo le guide sun sono arrivata a fare quasi tutto, tranne per un particolare..
    ho creato una JList di oggetti gestito da valueChanged, ove quando seleziono un oggetto, mi restituisce dentro un JTextArea un certo contenuto.
    Però mi serve l'oggetto selezionato, per fare dei calcoli nel metodo principale, in quanto nel metodo principale ho degli oggetti che devo confrontare con questo selezionato.
    E tali oggetti sono stati passati come parametri nel metodo principale.
    Ho provato a fare nel metodo principale list.getSelectedValue() ma purtroppo mi restituisce null.
    Qualcuno saprebbe dirmi come posso da valueChanged passare l'oggetto (che in realtà è una stringa) al menù principale?
    Grazie mille!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ho creato una JList di oggetti gestito da valueChanged, ove quando seleziono un oggetto, mi restituisce dentro un JTextArea un certo contenuto.
    Però mi serve l'oggetto selezionato, per fare dei calcoli nel metodo principale, in quanto nel metodo principale ho degli oggetti che devo confrontare con questo selezionato.
    E tali oggetti sono stati passati come parametri nel metodo principale.
    scusa che intendi con oggetto principale? Se in realtà vuoi confrontare la stringa che hai ottenuto al passo 1 (aggiornando la textarea) ti basta memorizzare in un opportuno contenitore tale stringa in modo da poter fare gli altri calcoli
    RTFM Read That F*** Manual!!!

  3. #3
    Ma non so come fare, o meglio, io ho provato a mettere in una label (l8)la stringa in valueChanged e poi nel metodo principale ho fatto l8.getText() ma mi restituisce null.

    il codice è questo (togliendo le parti che non c'entrano)

    codice:
    public class ParamPanel extends JPanel {
    
    private ListSelectionListener Flistener = (new ListSelectionListener() { 
    public void valueChanged(ListSelectionEvent ev) { 
    if(ev.getValueIsAdjusting()) { return; } 
    else { 
    t2.setText("");   //JLabel
    String trace2 = (String) instancesListFiltred.getSelectedValue(); 
    String text2=""; 
    for(XEvent event: trace2) { 
    text2 += event +"\n"; 
    } 
    t2.append(text2); 
    l6.setText("Second Trace Selected n. "+trace2);
    l8.setText(trace2); 
    } 
    } 
    });
    
    public JComponent visualize(Result results, long time) {
    .....
    instancesListFiltred = new JList(traceName2);
    instancesListFiltred.addListSelectionListener(FListener);
    instancesListFiltred.setSelectionMode(ListSelectionMode.SINGLE_INTERVAL_SELECTION);
    
    ...
    String text3 = "I risultati sono...";
    for(int n=0; n<numv; n++) {
    if(results.getResult().get(n).instance==trace2) {
    ....
    text3 += results.getResult().get(n).distance;
    }
    t3 = new JTextArea(text3);
    .....
    
    }
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ma cosa vuoi fare in sostanza? dillo un attimo a parole
    RTFM Read That F*** Manual!!!

  5. #5
    prendere la stringa selezionata nella JList e confrontarla con un valore (results) che ho in visualize().

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    codice:
    if (!evt.getValueIsAdjusting()) {
                JList list = (JList)evt.getSource();
    
                // Get all selected items
                Object[] selected = list.getSelectedValues();
    
                // Iterate all selected items
                for (int i=0; i<selected.length; i++) {
                    Object sel = selected[i];
                }
            }
    se selected è una variabile generale (definita fuori dal metodo per intenderci), dovresti avere il valore fuori
    RTFM Read That F*** Manual!!!

  7. #7
    ho messo fuori dal metodo ma dentro la classe ParamPanel
    String nameSTrace;

    in public void valueChanged(...) {
    ....
    String trace2 = (String) instancesListFiltred.getSelectedValue();
    nameSTrace = trace2;
    }

    e in visualize(...) {
    System.out.println(nameSTrace);
    }

    ma non me lo stampa

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    questo è il codice di valueChanged

    codice:
    if (evt.getValueIsAdjusting()){
                System.out.println("Do nothing");
            }else{
                
                valore = jList1.getSelectedValue().toString();
                System.out.println(valore);
            }
    valore è una variabile definita cosi nella classe

    codice:
    String valore = "";
    e ti assicuro che dopo l'esecuzione di valueChanged il valore della variabile valore è cambiato
    RTFM Read That F*** Manual!!!

  9. #9
    Sì il valore cambia, però mi non viene recuperato nel metodo visualize(), infatti vedo che funziona sul JTextArea o se faccio una System.out.println(valore) in valueChanged di quel valore, ma se faccio System.out.println(valore) in visualize() non mi dà risultato, ossia mi dà "" come era stato inizializzato.

    Va beh pazienza, cercherò in qualche altro modo.
    Grazie

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ma in visualize ogni volta istanzi una nuova JList?perché?
    RTFM Read That F*** Manual!!!

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.