import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class SidePanel extends JPanel { private int player = 1; private final ArrayList<Player> players; private final BoardComponent board; private final JTextField valX1 = new JTextField("<x1>"); private final JTextField valY1 = new JTextField("<y1>"); private final JTextField valX2 = new JTextField("<x2>"); private final JTextField valY2 = new JTextField("<y2>"); private final JLabel name; private final JLabel wallsLeft; private final ColorComponent pColor; // public SidePanel() {} // public void add(BoardComponent b) {final BoardComponent board = b;} // public void add(ArrayList<Player> p) {final ArrayList<Player> players = // p;} public SidePanel(BoardComponent b, ArrayList<Player> p) { board = b; players = p; JButton up = new JButton("UP"); class ButtonListener1 implements ActionListener { public void actionPerformed(ActionEvent event) { boolean moved = players.get(player - 1).movePiece("UP", board); // System.out.println(moved); if (moved) { if (players.get(player - 1).checkWin()) { board.repaint(); JOptionPane.showMessageDialog(null, "Congratulations, " + players.get(player - 1) .getName() + ", YOU WIN!", null, 1); System.exit(-1); } player++; if (player > players.size()) player = 1; } board.repaint(); } } ActionListener listener1 = new ButtonListener1(); up.addActionListener(listener1); JButton down = new JButton("DOWN"); class ButtonListener2 implements ActionListener { public void actionPerformed(ActionEvent event) { boolean moved = players.get(player - 1).movePiece("DOWN", board); // System.out.println(moved); if (moved) { // System.out.println(player); if (players.get(player - 1).checkWin()) { board.repaint(); JOptionPane.showMessageDialog(null, "Congratulations, " + players.get(player - 1) .getName() + ", YOU WIN!", null, 1); System.exit(-1); } player++; if (player > players.size()) player = 1; } board.repaint(); } } ActionListener listener2 = new ButtonListener2(); down.addActionListener(listener2); JButton left = new JButton("LEFT"); class ButtonListener3 implements ActionListener { public void actionPerformed(ActionEvent event) { boolean moved = players.get(player - 1).movePiece("LEFT", board); // System.out.println(moved); if (moved) { // System.out.println(player); if (players.get(player - 1).checkWin()) { board.repaint(); JOptionPane.showMessageDialog(null, "Congratulations, " + players.get(player - 1) .getName() + ", YOU WIN!", null, 1); System.exit(-1); } player++; if (player > players.size()) player = 1; } board.repaint(); } } ActionListener listener3 = new ButtonListener3(); left.addActionListener(listener3); JButton right = new JButton("RIGHT"); class ButtonListener4 implements ActionListener { public void actionPerformed(ActionEvent event) { boolean moved = players.get(player - 1).movePiece("RIGHT", board); // System.out.println(moved); if (moved) { // System.out.println(player); if (players.get(player - 1).checkWin()) { board.repaint(); JOptionPane.showMessageDialog(null, "Congratulations, " + players.get(player - 1) .getName() + ", YOU WIN!", null, 1); System.exit(-1); } player++; if (player > players.size()) player = 1; } board.repaint(); } } ActionListener listener4 = new ButtonListener4(); right.addActionListener(listener4); ColorComponent dummy1 = new ColorComponent(Color.LIGHT_GRAY); ColorComponent dummy2 = new ColorComponent(Color.LIGHT_GRAY); ColorComponent dummy3 = new ColorComponent(Color.LIGHT_GRAY); ColorComponent dummy4 = new ColorComponent(Color.LIGHT_GRAY); ColorComponent dummy5 = new ColorComponent(Color.LIGHT_GRAY); JPanel move = new JPanel(); move.setLayout(new GridLayout(3, 3)); move.add(dummy1); move.add(up); move.add(dummy2); move.add(left); move.add(dummy3); move.add(right); move.add(dummy4); move.add(down); move.add(dummy5); JLabel x1y1 = new JLabel("(x1, y1):", SwingConstants.CENTER); JLabel x2y2 = new JLabel("(x2, y2):", SwingConstants.CENTER); JButton place = new JButton("PLACE"); class ButtonListener5 implements ActionListener { public void actionPerformed(ActionEvent event) { int x1 = Integer.parseInt(valX1.getText()); int y1 = Integer.parseInt(valY1.getText()); int x2 = Integer.parseInt(valX2.getText()); int y2 = Integer.parseInt(valY2.getText()); boolean placed = players.get(player - 1).placeWall( new Wall(x1, y1, x2, y2), board); System.out.println(placed); if (placed) { player++; if (player > players.size()) player = 1; } board.repaint(); } } ActionListener listener5 = new ButtonListener5(); place.addActionListener(listener5); JPanel wall = new JPanel(); wall.setLayout(new GridLayout(2, 1)); JPanel wallVals = new JPanel(); wallVals.setLayout(new GridLayout(2, 3)); wallVals.add(x1y1); wallVals.add(valX1); wallVals.add(valY1); wallVals.add(x2y2); wallVals.add(valX2); wallVals.add(valY2); wall.add(wallVals); wall.add(place); JPanel currentPlayer = new JPanel(); currentPlayer.setLayout(new GridLayout(3, 2)); name = new JLabel("Name: " + players.get(player - 1).getName()); class LabelListener1 implements ChangeListener { public void stateChanged(ChangeEvent event) { name.setText("Name: " + players.get(player - 1).getName()); } } ChangeListener listener6 = new LabelListener1(); up.addChangeListener(listener6); down.addChangeListener(listener6); right.addChangeListener(listener6); left.addChangeListener(listener6); place.addChangeListener(listener6); JLabel color = new JLabel("Color: "); color.setHorizontalAlignment(SwingConstants.LEFT); wallsLeft = new JLabel("Walls Left: " + players.get(player - 1).getNumWalls()); class LabelListener3 implements ChangeListener { public void stateChanged(ChangeEvent event) { wallsLeft.setText("Walls Left: " + players.get(player - 1).getNumWalls()); } } ChangeListener listener8 = new LabelListener3(); up.addChangeListener(listener8); down.addChangeListener(listener8); right.addChangeListener(listener8); left.addChangeListener(listener8); place.addChangeListener(listener8); ColorComponent gray1 = new ColorComponent(Color.LIGHT_GRAY); ColorComponent gray2 = new ColorComponent(Color.LIGHT_GRAY); pColor = new ColorComponent(players.get(player - 1).getColor()); class ColorListener1 implements ChangeListener { public void stateChanged(ChangeEvent event) { pColor.setColor(players.get(player - 1).getColor()); pColor.repaint(); } } ChangeListener listener9 = new ColorListener1(); up.addChangeListener(listener9); down.addChangeListener(listener9); right.addChangeListener(listener9); left.addChangeListener(listener9); place.addChangeListener(listener9); currentPlayer.add(name); currentPlayer.add(gray1); currentPlayer.add(color); currentPlayer.add(pColor); // System.out.println(players.get(player - 1).getColor()); currentPlayer.add(wallsLeft); currentPlayer.add(gray2); JPanel label1 = new JPanel(); label1.setLayout(new GridLayout(3, 1)); label1.add(new JLabel( "____________________", SwingConstants.CENTER)); label1.add(new JLabel("Movement", SwingConstants.CENTER)); label1.add(new JLabel( "____________________", SwingConstants.CENTER)); JPanel label2 = new JPanel(); label2.setLayout(new GridLayout(3, 1)); label2.add(new JLabel( "____________________", SwingConstants.CENTER)); label2.add(new JLabel("Wall Placement", SwingConstants.CENTER)); label2.add(new JLabel( "____________________", SwingConstants.CENTER)); JPanel label3 = new JPanel(); label3.setLayout(new GridLayout(3, 1)); label3.add(new JLabel( "____________________", SwingConstants.CENTER)); label3.add(new JLabel("Current Player Stats", SwingConstants.CENTER)); label3.add(new JLabel( "____________________", SwingConstants.CENTER)); this.setLayout(new GridLayout(6, 1)); this.add(label1); this.add(move); this.add(label2); this.add(wall); this.add(label3); this.add(currentPlayer); } public void setVals(BoardComponent b) { valX1.setText((Double.toString(Math .round(b.getNewWall().getX1() / 50))).substring(0, 1)); valY1.setText((Double.toString(Math .round(b.getNewWall().getY1() / 50))).substring(0, 1)); valX2.setText((Double.toString(Math .round(b.getNewWall().getX2() / 50))).substring(0, 1)); valY2.setText((Double.toString(Math .round(b.getNewWall().getY2() / 50))).substring(0, 1)); } public int getX1() { return Integer.parseInt(valX1.getText()); } public int getY1() { return Integer.parseInt(valY1.getText()); } public int getX2() { return Integer.parseInt(valX2.getText()); } public int getY2() { return Integer.parseInt(valY2.getText()); } public int getPlayer() { return player; } public void setPlayer(int i) { player = i; } public void incPlayer() { player++; } public void refresh() { name.setText("Name: " + players.get(player - 1).getName()); wallsLeft.setText("Walls Left: " + players.get(player - 1).getNumWalls()); pColor.setColor(players.get(player - 1).getColor()); pColor.repaint(); } }