Ich habe einen ProgressMonitor pm
und einen SwingWorker sw
. Ich möchte den SwingWorker abbrechen, wenn ich die cancel
-Taste auf pm
drücke. Ich denke, das sollte nicht zu schwer sein, und ich lese einige Tutorials über SwingWorker und ProgressMonitor, aber ich kann das nicht zum Laufen bringen.Erhalten des Abbruchereignisses von 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();
Fortschritt Aktualisierung funktioniert ganz gut, aber pm.isCanceled()
ist nie true
. Ich nehme an, ich brauche einen propertyChangeListener für den ProgressMonitor, aber ich weiß nicht, wie ich einen da hinzufügen würde.
Antwort des Allthough mKorbel war sehr informativ fehlte der ProgressMonitor, nach dem ich eigentlich gefragt hatte - also wählte ich dies als Antwort. – AntiZamba