added doInSwing