получение события отмены Java ProgressMonitor

У меня есть ProgressMonitorpm и SwingWorkersw, Я хочу отменить SwingWorker, когда я нажимаюcancelкнопка наpm, Я думаю, это не должно быть слишком сложно, и я прочитал некоторые учебные пособия по SwingWorker и ProgressMonitor, но я не могу заставить это работать.

final ProgressMonitor pm = new ProgressMonitor(frame, "checking", "...", 0, 100);
final SwingWorker sw = new SwingWorker()
{
    protected Object doInBackground() throws Exception 
    {
        doSomethingAndUpdateProgress();
    }
};

sw.addPropertyChangeListener(new PropertyChangeListener()
{
    public void propertyChange(PropertyChangeEvent evt)
    {
        if(evt.getPropertyName().equals("progress"))
        {
            updateProgress();
        }
        if(pm.isCanceled())
        {
            cancelAction();
        }
        if(pm.isDone())
        {
            doneAction();
        }
    }
});

sw.execute();

Обновление прогресса работает просто отлично, ноpm.isCanceled() никогдаtrue, Я предполагаю, что мне нужен propertyChangeListener для ProgressMonitor, но я не знаю, как бы я добавил его туда.

Ответы на вопрос(2)

Ваш ответ на вопрос