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

Rispondi quotando