Files
Prog_1/Reversi/reversi/view/ReversiPlayBoard.java
Felix Steghofer c3f4512037 fix java shit
2022-12-04 01:45:18 +01:00

70 lines
2.1 KiB
Java

package reversi.view;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import javax.swing.JPanel;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.border.MatteBorder;
import reversi.model.Board;
import reversi.model.Field;
import reversi.model.Reversi;
/**
* Create a reversi playboard for the reversi game gui.
*/
public class ReversiPlayBoard extends JPanel {
private static final long serialVersionUID = 2725183063551812386L;
private ReversiField[][] playField = new ReversiField
[Board.SIZE][Board.SIZE];
/**
* Init array with all reversi fields. Set background and tooltip of
* fields.
*/
public ReversiPlayBoard() {
this.setLayout(new GridLayout(Board.SIZE, Board.SIZE));
this.setBorder(new CompoundBorder(
null, new EmptyBorder(0, 0, 10, 10)));
for (int row = 0; row < Board.SIZE; row++) {
for (int col = 0; col < Board.SIZE; col++) {
playField[row][col] = new ReversiField(new Field(row, col));
playField[row][col].setBorder(
new MatteBorder(1, 1, 0, 0, Color.BLACK));
playField[row][col].setBackground(new Color(0, 170, 0));
playField[row][col].setToolTipText("Click to make a move!");
this.add(playField[row][col]);
}
}
this.setVisible(true);
}
/**
* Update hole playboard players.
*
* @param board Board to update.
*/
public void updatePlayBoard(Reversi board) {
for (int row = 0; row < Board.SIZE; row++) {
for (int col = 0; col < Board.SIZE; col++) {
this.playField[row][col].setPlayer(board.getSlot(row, col));
}
}
}
/**
* Set mouselistener of <code>field</code>
*
* @param ma Mouseadapter
* @param field Field
*/
public final void setFieldListener(
final MouseAdapter ma, final Field field) {
this.playField[field.row()][field.col()].setListener(ma);
}
}