First of all, declare a member variable in your class (it could be in your GUI class) of type SwingWorker
like this:
private SwingWorker<Boolean, Void> backgroundProcess;
Then initialize the variable in your initialization code (constructor, onShow method event handler, etc) like this:
backgroundProcess = new SwingWorker<Boolean, Void>() {
@Override
protected Boolean doInBackground() throws Exception {
// paste the MySQL code stuff here
}
@Override
protected void done() {
// Process ended, mark some ended flag here
// or show result dialog, messageBox, etc
}
};
Then, in your actionPerfomed
method, call the SwingWorker
's execute method:
backgroundProcess.execute();
If done correctly, the GUI shouldn't freezee after the button press event
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…