Swingworker não cancelando

oi pessoal
eu fui lá no javadoc pesquisar e vi que a classe swingworker tem um método “cancel”… aí fui utilizá-lo, mas não estou conseguindo…
minha classe que extends o swingworker chama-se Executar e seus objetos exec. Essa classe está dentro da classe principal que contem a GUI.
do jeito que estou fazendo, estou nomeando um objeto Execute exec; na classe principal e depois quando necessário faço exec.execute…
aí quando o usuário clica “abortar” faço exec.cancel(true); e depois coloquei até if(exec.isCancelled()) System.out.println(“cancelou!”);…
o cancelou aparece, mas é só eu esperar um pouco que o programa completa e retorna, demonstrando que a execução não foi cancelada como deveria…
estou perdido…
obrigado antecipadamente.
abraços

up!
ajudem por favor!
o objeto exec tem que ser um objeto de classe e não uma variável de método né… senão não faz sentido… faz?

ninguem consegue imaginar o problema?
se logo depois do exec.execute eu faço exec.cancel funciona certinho e cancela… mas em outra situação não…
estou quebrando a cabeça aqui pra tenta entender…