Quando ci sono queste necessità di interazione tra classi, bisogna sempre prestare molta attenzione al "design". Mettere campi di istanza 'public' o peggio mettere campi 'static' e 'public' NON è la soluzione migliore.Originariamente inviato da merto
Ho la necessità di aggiungere a una JList (creata ad esempio su una Form1) da un'altra classe (che è, sempre ad esempio, una Form2).
Male il 'public'.Originariamente inviato da merto
Su una classe "generale" che fa da main e avvia la classe form1 ho dichiarato come public il mio modello (preciso che questa classe "generale" NON è un jform):
codice:public DefaultListModel modello = new DefaultListModel(); public JList lista = new JList (modello);
Così .... a occhio ... senza vedere il codice completo (e senza avere capacità paranormaliOriginariamente inviato da merto
Dal form1 creo un jlist (pubblica, public javax.swing.JList jList1; ) e richiamo il modello (uso NetBeans e gli ho impostato manualmente la creazione)
Prima però pecifico dal form1 la classe generale:
In private void initComponents netbeans mi ha creato questo:codice:DesktopApplication1 princip = new DesktopApplication1();
Ci creo un bottone e ci metto del codice di esempio per aggiungere gli elementi:codice:jList1 = princip.lista;
codice:princip.modello.addElement("aaa");
OK! Tutto perfetto! Funziona!
Ora faccio le stesse identiche cose dal form2:
e voglio aggiungere gli elementi nella jlist del form1 da un bottone che risiede NEL form2:codice:DesktopApplication1 princip = new DesktopApplication1();
Ma non funziona!codice:princip.modello.addElement("aaa");
Dove sbaglio?) potrei dire che istanziando DesktopApplication1 non stai operando sullo stesso dell'altro .... ma così come l'hai spiegato è confuso ....