001    
002    package gui;
003    
004    import java.awt.event.KeyListener;
005    import java.awt.event.WindowListener;
006    import java.awt.event.ActionListener;
007    import java.awt.event.ActionEvent;
008    
009    import javax.swing.event.ChangeListener;
010    import javax.swing.Timer;
011    import javax.swing.JFrame;
012    
013    
014    /**
015     * Main class to handle the TSPs and the GUI.
016     * @author Heinz Kredel.
017     */
018    public class TSPgui {
019    
020    /**
021     * @param args unused.
022     */
023        public static void main(String[] args) {
024    
025            final TSPguiModel model = new TSPguiModel();
026            KeyListener keyControl = new TSPguiKeyControl(model);
027            WindowListener windowControl = new TSPguiWindowControl(model);
028            ActionListener actionControl = new TSPguiActionControl(model);
029            ChangeListener changeControl = new TSPguiChangeControl(model);
030            //JFrame.setDefaultLookAndFeelDecorated(true);
031            JFrame main = new TSPguiMain(model,
032                                         keyControl,
033                                         windowControl,
034                                         actionControl,
035                                         changeControl);
036            ActionListener wecker = new ActionListener() {
037                    public void actionPerformed(ActionEvent evt) {
038                            model.doUpdate();
039                    }
040            };
041            Timer repaint = new Timer(250, wecker);
042            repaint.start();
043            
044            model.waitDone(); 
045            main.setVisible(false);
046            repaint.stop();
047            main.dispose();
048            System.exit(0);
049        }
050    
051    }