Ciao ragazzi,
sto "studiando" la classe SwingWorker. Ho due pulsanti uno di start e uno di stop.
Premendo il tasto start creo l'oggetto della classe che implementa SwingWorker e lo mando in esecuzione con il metodo execute. Questo esegue tutte le operazioni richieste "in background"correntamente. Il problema è che quando vado a premere stop ricevo l'errore che mi dice che il metodo cancel(true) che invoco fa riferimento ad un oggetto nullo...lo strano è che il modo di chiamare i metodi è molto simile a quello preso da un libro...bah
posto il codice del listener dei pulsanti:
codice:
public class ButtonListener implements ActionListener {
private Window window;
private ResizeWorker worker;
public ButtonListener(Window window) {
this.window = window;
}
@Override
public void actionPerformed(ActionEvent ae) {
String command = ae.getActionCommand();
if ( command == "Start")
startResize();
else if (command == "Stop")
stopResize();
}
private void startResize() {
worker= new ResizeWorker(window, v);
window.stop.setEnabled(true);
window.progress.setEnabled(true);
window.jbProg.setEnabled(true);
worker.execute();
}
private void stopResize() {
worker.cancel(true);
System.out.println("Operazione Interrotta");
}
}
Questo è l'errore:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at ButtonListener.stopResize(ButtonListener.java:53)
Grazie in anticipo