Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446

    [JAVA]Problema con JList e metodi,gli elementi non vengono inseriti

    Salve ragazzi ho creato una JList e sto tentando di far aggiungere un item da una classe esterna,per questo ho creato un metodo addItem(String item),ora se invoco questo metodo dalla stessa classe che contiene la JList questo viene aggiunto senza problemi,se invece provo a far aggiungere un item da un'altra classe istanziando l'oggetto:

    MyList prova=new MyList();

    prova.addItem("blabla");

    Dal compilatore non ricevo alcun errore ma l'item non viene aggiunto...

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

    Re: [JAVA]Problema con JList e metodi,gli elementi non vengono inseriti

    Originariamente inviato da energie
    Salve ragazzi ho creato una JList e sto tentando di far aggiungere un item da una classe esterna,per questo ho creato un metodo addItem(String item),ora se invoco questo metodo dalla stessa classe che contiene la JList questo viene aggiunto senza problemi,se invece provo a far aggiungere un item da un'altra classe istanziando l'oggetto:

    MyList prova=new MyList();

    prova.addItem("blabla");

    Dal compilatore non ricevo alcun errore ma l'item non viene aggiunto...
    Tanto per iniziare, l'unico modo per aggiungere dinamicamente elementi ad un JList è usare un apposito ListModel. Il list model di default infatti è immutabile.

    Quindi bisognerebbe vedere meglio il tuo codice.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    sto impazzendo ho riguardato il codice ed ho pensato che sarebbe stato meglio utilizzare una Jtable.Ma non capisco perchè il metodo che uso per inserire gli elementi NON me li aggiunge non è una questione di visibilità perchè quello sopra lo fa tranquillamente....

    public void actionPerformed(ActionEvent e) {

    if (e.getActionCommand().equals("Save"))
    {
    tbm.addRow(new Object[]{"User","FileName","FileSize"});

    }
    }
    public void addItem(String itemToAdd){

    tbm.addRow(new Object[]{itemToAdd, itemToAdd, itemToAdd});
    System.out.println("il metodo è stato avviato correttamente");

    }

    Ricapitolo,se premo il pulsante Save aggiunge senza problemi quella riga,se invece invoco da un altra classe il metodo addItem mi stampa il System.out... ma non aggiunge la riga.Escludendo che sia un problema di visibilità perchè quello appena sopra riesce ad aggiungerla,quale potrebbe essere il problema?

  4. #4
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    up

  5. #5
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    up

  6. #6
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    ragazzi datemi una mano perchè davvero non riesco a risolvere...

  7. #7
    ma non puoi passere al costruttore della classe esterna anche il DefaultListModel della JList?

    codice:
    ....
    private DefaultListModel dlm;
    
    public ClasseEsterna (DefaultListModel dlm) {
            .....
            this.dlm = dlm;
    }
    .....

  8. #8
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    potresti scrivere un po' di codice in più?non riesco a capire cosa dovrei fare.

  9. #9
    esempio:
    primo jframe con una jlist ed un pulsante:

    codice:
    public class FrameConJlist extends javax.swing.JFrame {
        
        DefaultListModel dlm = new DefaultListModel();
        
        public FrameConJlist() {
            .....
            jList1.setModel(dlm);
            
        }
    }
    all'actionperformed del pulsante assegno:

    codice:
             dlm.addElement("nuovo item da FrameConJlist");
    creo un secondo jframe con un pulsante:

    codice:
    public class ClasseEsterna extends javax.swing.JFrame {
        
        private DefaultListModel dlm;
        ....
        public ClasseEsterna(DefaultListModel dlm) {
               ......
               this.dlm = dlm;    
       
        }
    all'actionperformed del pulsante assegno:

    codice:
             dlm.addElement("nuovo item da ClasseEsterna");

  10. #10
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    il fatto è che non devo aggiungere nessun pulsante,praticamente una classe effettua una ricerca e deve aggiungere i risultati in questa jlist o jtable,solo che proprio non lo fa...mentre se uso lo stesso metodo per aggiungere elementi dalla stessa classe funziona,se lo eseguo da una classe esterna mi stampa solo la stringa System.out.println("il metodo è stato avviato correttamente"); senza aggiungere nulla

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.