Window.java 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package main;
  2. import java.awt.Cursor;
  3. import java.awt.Point;
  4. import java.awt.Toolkit;
  5. import java.awt.event.WindowAdapter;
  6. import java.awt.event.WindowEvent;
  7. import java.awt.image.BufferedImage;
  8. import javax.swing.JFrame;
  9. import model.GameModel;
  10. import view.GameView;
  11. import control.GameControl;
  12. import control.GameStateManager;
  13. import control.NetworkHandler;
  14. import control.SongHandler;
  15. import control.button.ButtonHandler;
  16. import control.joystick.JoystickHandler;
  17. import data.io.SQLConnector;
  18. public class Window extends JFrame {
  19. private static final long serialVersionUID = -9222956702898533696L;
  20. public static boolean ON_ARCADE;
  21. public final static int WIDTH = 1280;
  22. public final static int HEIGHT = 1024;
  23. public Window(boolean ON_ARCADE)
  24. {
  25. //Create window
  26. super("Arcade");
  27. setSize(WIDTH, HEIGHT);
  28. //Create Events
  29. Window.ON_ARCADE = ON_ARCADE;
  30. if(ON_ARCADE){ //Only on the arcade machine
  31. //Remove cursor
  32. setUndecorated(true);
  33. BufferedImage cursorImg = new BufferedImage(16, 16, BufferedImage.TYPE_INT_ARGB);
  34. Cursor blankCursor = Toolkit.getDefaultToolkit().createCustomCursor(cursorImg, new Point(0, 0), "blank cursor");
  35. this.setCursor(blankCursor);
  36. }
  37. ButtonHandler bth = new ButtonHandler();
  38. JoystickHandler jsh = new JoystickHandler();
  39. final SQLConnector sql = new SQLConnector();
  40. NetworkHandler ntw = new NetworkHandler("10.42.0.5", 1113, bth, jsh);
  41. bth.setNetwork(ntw);
  42. //Create Instances
  43. final SongHandler sh = new SongHandler(sql);
  44. GameStateManager gsm = new GameStateManager(sh, sql);
  45. GameView view = new GameView(gsm);
  46. GameModel model = new GameModel(sh, gsm, ntw);
  47. GameControl control = new GameControl(model, view,gsm);
  48. setContentPane(view);
  49. //Set window close listener
  50. setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
  51. addWindowListener(new WindowAdapter(){
  52. public void windowClosing(WindowEvent e) {
  53. sh.close();
  54. try {
  55. sql.finalize();
  56. } catch (Throwable e1) {
  57. e1.printStackTrace();
  58. }
  59. System.exit(0);
  60. }
  61. });
  62. //Create EventListeners
  63. addKeyListener(bth);
  64. addKeyListener(jsh);
  65. bth.addButtonListener(control);
  66. jsh.addJoystickListener(control);
  67. //Display
  68. setResizable(false);
  69. pack();
  70. setVisible(true);
  71. }
  72. }