First line should say.
Create an instance of the MainClass to run the program. (I have been
using a program called BlueJ)
> I have uploaded a SSCE @
> http://www.geocities.com/benspencer_2000/ssce.zip
SSCCE should usually weigh in at less than sixteen megs...
> The main class to create an instance of to run in MainClass. When
> run_sim is ran from the constructor its fine. However the action
> listener tries the window freezes.
It looks at first glance as if you have created and shown the JFrame and
run your blocking code on the main thread. For the action listener you
have run the blocking code on the AWT Event Dispatch Thread (EDT).
You should not create Swing components off the EDT. Typically your main
method should look something like:
public static void main(final String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
doSwingStuff(args);
}
});
}
Once you do that, you should notice your blocking code blocks the GUI.
You need to run the blocking code on a different thread, and then feed
the results back through to the EDT (with EventQueue.invokeLater). For
details google for Swing threads tutorials.
Tom Hawtin

Signature
Unemployed English Java programmer
http://jroller.com/page/tackline/