63 lines
1.5 KiB
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; }
|
|
}
|