Mam ProgressMonitor pm
i SwingWorker sw
. Chcę anulować SwingWorker po naciśnięciu przycisku cancel
-na pm
. Myślę, że to nie powinno być zbyt trudne, i czytałem kilka tutoriali o SwingWorker i ProgressMonitor, ale nie mogę tego zrobić.Uzyskiwanie zdarzenia anulowania Java 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();
aktualizowanie Progress działa dobrze, ale nigdy nie jest true
pm.isCanceled()
. Przypuszczam, że potrzebuję właściwości PropertyChangeListener dla ProgressMonitor, ale nie wiem, jak bym ją dodała.
odpowiedź allthough mKorbel był bardzo informacyjny, że brakowało ProgressMonitor, o który właściwie pytałem - więc wybrałem to jako odpowiedź. – AntiZamba