This repository has been archived on 2021-02-18. You can view files and clone it, but cannot push or open issues or pull requests.
chess/src/main/java/dev/kske/chess/ui/BoardPane.java

63 lines
1.5 KiB
Java

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.
* <br>
* Project: <strong>Chess</strong><br>
* File: <strong>BoardPane.java</strong><br>
* Created: <strong>08.07.2019</strong><br>
*
* @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; }
}