получение события отмены 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, но я не знаю, как бы я добавил его туда.