package dev.kske.chess.ui;
import java.awt.Dimension;
import javax.swing.JLayeredPane;
/**
* Combines a {@link BoardComponent} and an {@link OverlayComponent} into a
* layered pane.
*
* Project: Chess
* File: BoardPane.java
* Created: 08.07.2019
*
* @since Chess v0.1-alpha
* @author Kai S. K. Engelbart
*/
public class BoardPane extends JLayeredPane {
private static final long serialVersionUID = -5415058382478806092L;
private final BoardComponent boardComponent;
private final OverlayComponent overlayComponent;
private int tileSize;
/**
* Creates an instance of {@link BoardPane}.
*/
public BoardPane() {
boardComponent = new BoardComponent(this);
overlayComponent = new OverlayComponent(this);
setLayer(overlayComponent, 1);
setLayout(null);
add(boardComponent);
add(overlayComponent);
tileSize = 60;
setSize(getPreferredSize());
}
@Override
public Dimension getPreferredSize() { return new Dimension(480, 480); }
/**
* @return the board component contained inside this board pane
*/
public BoardComponent getBoardComponent() { return boardComponent; }
/**
* @return overlay component contained inside this board pane
*/
public OverlayComponent getOverlayComponent() {
return overlayComponent;
}
/**
* @return the size of an individual board tile in pixels
*/
public int getTileSize() { return tileSize; }
}