//Author: ^-^ Veerle ^-^ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.JOptionPane; public class othello extends JApplet implements ActionListener, KeyListener { private othelloCanvas mainOthelloBoard; private JButton cmdNewGame, cmdSetNames, cmdConfirm; private JTextField txtPlayerOne, txtPlayerTwo; private JLabel lblPlayerOne, lblPlayerTwo; private JPanel panBottomHalf, panNameArea, panPlayerOne, panPlayerTwo, panNameButton, panGameButtons; private Container frame; private Color clrBlue = new Color(75,141,221); public void init() { mainOthelloBoard = new othelloCanvas(); mainOthelloBoard.setSize(new Dimension(500, 500)); cmdNewGame = new JButton("New Game"); cmdSetNames = new JButton("Set Names"); cmdConfirm = new JButton("Confirm Move"); cmdNewGame.addActionListener(this); cmdSetNames.addActionListener(this); cmdConfirm.addActionListener(this); txtPlayerOne = new JTextField("Veerle", 10); txtPlayerTwo = new JTextField("Natasja", 10); txtPlayerOne.addKeyListener(this); txtPlayerTwo.addKeyListener(this); lblPlayerOne = new JLabel("----", JLabel.RIGHT); lblPlayerTwo = new JLabel("----", JLabel.RIGHT); try { Image imgRed = dataManager.createImage(this, getParameter("coinRed")); Image imgBlue = dataManager.createImage(this, getParameter("coinBlue")); Image imgTile = dataManager.createImage(this, getParameter("othelloTile")); mainOthelloBoard.setupImages(imgRed, imgBlue, imgTile); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Unable to load images. There should be coinRed.gif and coinBlue.gif in the same folder.", "Unable to load images", JOptionPane.WARNING_MESSAGE); cmdNewGame.setEnabled(false); cmdSetNames.setEnabled(false); cmdConfirm.setEnabled(false); } frame = getContentPane(); panBottomHalf = new JPanel(new BorderLayout()); panNameArea = new JPanel(new GridLayout(3,1,2,2)); panPlayerOne = new JPanel(); panPlayerTwo = new JPanel(); panNameButton = new JPanel(); panGameButtons = new JPanel(); frame.add(mainOthelloBoard, BorderLayout.NORTH); frame.add(panBottomHalf, BorderLayout.SOUTH); panBottomHalf.add(panNameArea, BorderLayout.WEST); panNameArea.add(panPlayerOne); panPlayerOne.add(lblPlayerOne); panPlayerOne.add(txtPlayerOne); panNameArea.add(panPlayerTwo); panPlayerTwo.add(lblPlayerTwo); panPlayerTwo.add(txtPlayerTwo); panNameArea.add(panNameButton); panNameButton.add(cmdSetNames); panBottomHalf.add(panGameButtons, BorderLayout.SOUTH); panGameButtons.add(cmdConfirm); panGameButtons.add(cmdNewGame); frame.setBackground(clrBlue); panBottomHalf.setBackground(clrBlue); panNameArea.setBackground(clrBlue); panPlayerOne.setBackground(clrBlue); panPlayerTwo.setBackground(clrBlue); panNameButton.setBackground(clrBlue); panGameButtons.setBackground(clrBlue); lblPlayerOne.setBackground(new Color(236,17,17)); //red lblPlayerOne.setForeground(new Color(236,17,17)); lblPlayerTwo.setBackground(new Color(17,27,237)); //blue lblPlayerTwo.setForeground(new Color(17,27,237)); panGameButtons.setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); } public void actionPerformed(ActionEvent e) { if (e.getSource() == cmdSetNames) { if (txtPlayerOne.getText().equals("")) { txtPlayerOne.setText("Veerle"); } if (txtPlayerTwo.getText().equals("")) { txtPlayerTwo.setText("Natasja"); } mainOthelloBoard.setNames(txtPlayerOne.getText(), txtPlayerTwo.getText()); } else if (e.getSource() == cmdNewGame) { mainOthelloBoard.newGame(); } else if (e.getSource() == cmdConfirm) { mainOthelloBoard.confirm(); } } public void keyTyped(KeyEvent e) { String strBuffer = ""; char c = e.getKeyChar(); if (e.getSource() == txtPlayerOne) { strBuffer = txtPlayerOne.getText(); } else { strBuffer = txtPlayerTwo.getText(); } if (strBuffer.length() > 10 && !((c == KeyEvent.VK_BACK_SPACE) || (c == KeyEvent.VK_DELETE))) { e.consume(); } } public void keyPressed(KeyEvent e) { } public void keyReleased(KeyEvent e) { } }