salve a tutti ragazzi,
sono quasi riuscita a completare un programma, ma c'è una cosa che nn mi torna. Ho un array di JLabel e ci devo modificare iltesto. Ho visto che bisogna usare il metodo setText() e allora ho fatto:
il system.out.print è per verificare che le stringhe vengono passate, infatti arrivano a questo metodo, ma sullìistruzione labelarray[1].setText(name) ;codice:public void aggiornaGrafica (String name, String surname, String interests) { System.out.println("ciao ci sono" + name + surname + interests); labelarray[1].setText(name) ; labelarray[3].setText(surname) ; labelarray[5].setText(interests) ; }
avviene un errore di tipo NullPointerException.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Grafica.aggiornaGrafica(Grafica.java:283)
at Controller.letturaProxyUno(Controller.java:39)
at Grafica$ButtonListener.actionPerformed(Grafica.jav a:268)
at javax.swing.AbstractButton.fireActionPerformed(Unk nown Source)
at javax.swing.AbstractButton$Handler.actionPerformed (Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed (Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent( Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(U nknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unkno wn Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilter s(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(U nknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
La riga 283 della classe Grafica è appunto labelarray[1].setText(name) ;
Io non so che fare, ho dichiarato questo array di JLabel nella classe grafica così:
nel costruttore riesco a creare le label concodice:public class Grafica implements ActionListener, WindowListener { public static final int LARGHEZZA = 800; public static final int ALTEZZA = 500; static JLabel[] labelarray ; static JLabel []labelarray2 ; private final Controller controlInGrafica; public Grafica (final Controller controlloPassato) { //costruttore...... e metodi......
ovviamente all'interno di cicli. Sempre nei cicli se dichiaro:codice:labelarray[i] = new JLabel ("TESTO");
la label assume sempre il testo che indico.codice:labelarray[i] = new JLabel (); labelarray[i].setText("TESTO");
Non riesco a capire perchè richiamando un metodo da fuori non funzioni più...
potete darmi una mano??![]()

Rispondi quotando