How to execute a long running task from an action without blocking the GUI?
The easy way if you might need to run a long task when some action is involved:
@ActionRegistration(asynchronous = true)
...
public void actionPerformed(ActionEvent ev) {
if (isLongTaskRequired) {
// maybe run a ProgressHandler
doLongTask();
}
EventQueue.invokeLater(new Runnable() {
@Override public void run() {
// do domething with the gui
}
});
}
This way you don’t even need to care about threading yourself, GUI will be updated as long as the task is finished.
Taken from dev@platform.netbeans.org (Oct 2013)