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; } }