Window.java 2.6 KB

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