先日質問させていただいた>>151です。>>153を参考にSwingとTimerでも一度ググッたら、関連するページがいっぱいヒットしました
http://www.javamex.com/tutorials/threads/invokelater.shtml このサンプルどおりボタンの処理をスレッド化したら解決しました

button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Thread omoimessoddoThread = new Thread() {
public void run() {
omoimesoddo();
}
};
omoimesoddoThread.start();
}
});

本来上記ページのサンプルにあるSwingUtilities.invokeLaterを使用するコードもつけたのですが、
ひょんなことからコードをコメントアウトしても動いてます
重いメソッドが動いてる間にもボタンが操作可能になってしまってるのが関連してるのかもしれないですが
そのへんはぼちぼち直していきます
ありがとうございました