import java.awt.Color; import java.awt.Graphics; import java.awt.Rectangle; import java.awt.Toolkit; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import java.awt.geom.Area; import javax.swing.JFrame; import javax.swing.JPanel; public class PunchingBagGUI implements MouseListener, MouseMotionListener, ButtonListener, LEDListener { public static enum Mode { Menu, Interactive, Game }; Mode currentMode = Mode.Interactive; final int bagXSize = 360; final int bagYSize = 840; static JFrame frame; static JFrame bagSimFrame; static PunchingBag bag = new PunchingBag(); // Contact public enum Direction { None, Up, Down, Left, Right }; final boolean useDebugScreen = true; public static void main(String[] args) throws InterruptedException { //SlaveArduino.listPorts(); new PunchingBagGUI(); } PunchingBagGUI() throws InterruptedException { frame = new JFrame("Punching Bag GUI"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 300); frame.setVisible(true); bagSimFrame = new JFrame("Punching Bag Sim"); bagSimFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); bagSimFrame.setSize(bagXSize, bagYSize); bagSimFrame.addMouseListener(this); bagSimFrame.addMouseMotionListener(this); bagSimFrame.setVisible(true); System.out.println("Bag X: " + bagSimFrame.getX() + " Bag Y: " + bagSimFrame.getY()); bag.addButtonListener(this); bag.addLEDChangeListener(this); draw(); } void draw() throws InterruptedException { bagSimFrame.paintComponents(bagSimFrame.getGraphics()); // bagSimFrame.paintAll(bagSimFrame.getGraphics()); Thread.sleep(16); draw(); } public void runInteractively(Contact contact) { } public void mouseClicked(MouseEvent arg0) { // TODO Auto-generated method stub } public void mouseEntered(MouseEvent arg0) { // TODO Auto-generated method stub } public void mouseExited(MouseEvent arg0) { // TODO Auto-generated method stub } public void mousePressed(MouseEvent arg0) { if (currentMode == Mode.Interactive) { runInteractively(new Contact(System.currentTimeMillis(), (arg0.getX() - 4)/ 40 , (arg0.getY() - 30) / 40, 0)); } } public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated method stub } public void mouseDragged(MouseEvent arg0) { // TODO Auto-generated method stub } public void mouseMoved(MouseEvent arg0) { // TODO Auto-generated method stub } public void contact(Contact c) { // TODO Auto-generated method stub } @Override public void buttonPressed(int x, int y) { // TODO Auto-generated method stub } @Override public void LEDchanged() { // TODO Auto-generated method stub } }