@Override public void observe(Event event) { if (event instanceof MoveSelectedEvent) { workingMove = ((MoveSelectedEvent) event).getMove(); if (((MoveSelectedEvent) event).isFinal()) { moveBeingSubmitted = true; updateControls(); notifyObservers(new MoveSelectedEvent(workingMove)); } updateControls(); } }
public void showFinalMessage(String theMessage) { workingMoveLabel.setText(theMessage); workingMoveLabel.setForeground(Color.RED); gameOver = true; updateControls(); validate(); repaint(); }
@Override public void actionPerformed(ActionEvent e) { if (gameOver) return; if (e.getSource() == clearSelectionButton) { theCanvas.clearMoveSelection(); } else if (e.getSource() == submitMoveButton) { if (workingMove != null) { moveBeingSubmitted = true; updateControls(); notifyObservers(new MoveSelectedEvent(workingMove)); } } }
public GameGUI(GameCanvas theCanvas) { super(new BorderLayout()); this.theCanvas = theCanvas; JLabel theTitleLabel = new JLabel(theCanvas.getGameName()); theTitleLabel.setFont( new Font( GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()[0], Font.BOLD, 36)); JPanel northPanel = new JPanel(new FlowLayout()); northPanel.add(theTitleLabel); submitMoveButton = new JButton("Submit Move"); submitMoveButton.addActionListener(this); clearSelectionButton = new JButton("Clear Selection"); clearSelectionButton.addActionListener(this); workingMoveLabel = new JLabel(); JPanel southCenterPanel = new JPanel(new FlowLayout()); JPanel southEastPanel = new JPanel(new FlowLayout()); JPanel southPanel = new JPanel(new BorderLayout()); southEastPanel.add(new JLabel("Time Remaining ")); southEastPanel.add(clearSelectionButton); southEastPanel.add(submitMoveButton); southPanel.add("West", workingMoveLabel); southPanel.add("Center", southCenterPanel); southPanel.add("East", southEastPanel); add("North", northPanel); add("Center", theCanvas); add("South", southPanel); northPanel.setBackground(theCanvas.getBackground()); southPanel.setBackground(theCanvas.getBackground()); southEastPanel.setBackground(theCanvas.getBackground()); southCenterPanel.setBackground(theCanvas.getBackground()); theCanvas.addObserver(this); updateControls(); }
public void updateGameState(MachineState gameState) { moveBeingSubmitted = false; theCanvas.updateGameState(gameState); updateControls(); }
public void beginPlay() { stillMetagaming = false; updateControls(); }