From 41f0d2f6b11a6120b9f8727e0409cbb1f26304c5 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sun, 1 May 2011 02:01:15 +0200 Subject: [PATCH] Make board resizable git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@49 72836036-5685-4462-b002-a69064685172 --- src/jrummikub/resource/wood.png | Bin 17920 -> 22975 bytes src/jrummikub/view/impl/Board.java | 40 ++++++++++++++++------ src/jrummikub/view/impl/StonePainter.java | 2 +- src/jrummikub/view/impl/StonePanel.java | 4 +++ src/jrummikub/view/impl/View.java | 2 +- 5 files changed, 36 insertions(+), 12 deletions(-) diff --git a/src/jrummikub/resource/wood.png b/src/jrummikub/resource/wood.png index ed9cf147a9e2f33934e8718e2a974afbeb6800ca..4f87ca0e5b6cdf05dee2f799113512b6da207e5e 100644 GIT binary patch literal 22975 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 stones = Collections.emptyMap(); private Collection selectedStones = Collections.emptyList(); Board() { - super(DEFAULT_SCALE); - setBorder(new CustomBorder(Color.DARK_GRAY, 0, 1, 0, 1)); } + private BufferedImage getScaledBackground(int size) { + BufferedImage scaled = new BufferedImage(size, size, BufferedImage.TYPE_INT_RGB); + Graphics2D g = scaled.createGraphics(); + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); + + g.drawImage(BACKGROUND, 0, 0, size, size, null); + + return scaled; + } + @Override protected void paintComponent(Graphics g1) { Insets insets = getInsets(); int x = insets.left, y = insets.top, width = getWidth()-insets.left-insets.right, height = getHeight()-insets.top-insets.bottom; Graphics2D g = (Graphics2D)g1.create(x, y, width, height); + int size = height/2; + BufferedImage scaledBackground = getScaledBackground(size); - for(int xpos = 0; xpos < width; xpos += BACKGROUND.getIconWidth()) { - BACKGROUND.paintIcon(this, g, xpos, 0); + for(int xpos = 0; xpos < width; xpos += size) { + g.drawImage(scaledBackground, xpos, 0, null); } - for(int xpos = -32; xpos < width; xpos += BACKGROUND.getIconWidth()) { - BACKGROUND.paintIcon(this, g, xpos, 75); + for(int xpos = -size/3; xpos < width; xpos += size) { + g.drawImage(scaledBackground, xpos, size, null); } g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - + + getStonePainter().setScale(size*StonePainter.PIXEL_SCALE); + for (Map.Entry entry : stones.entrySet()) { getStonePainter().paintStone(g, entry.getKey(), entry.getValue(), selectedStones.contains(entry.getKey())); diff --git a/src/jrummikub/view/impl/StonePainter.java b/src/jrummikub/view/impl/StonePainter.java index d5bc752..9cda8f6 100644 --- a/src/jrummikub/view/impl/StonePainter.java +++ b/src/jrummikub/view/impl/StonePainter.java @@ -26,7 +26,7 @@ class StonePainter { private static final float BRIGHTER_SCALE = 1.15f; - public static final float BOARD_SCALE = 75.0f*ASPECT_RATIO/DEFAULT_WIDTH; + public static final float PIXEL_SCALE = ASPECT_RATIO/DEFAULT_WIDTH; private float scale; diff --git a/src/jrummikub/view/impl/StonePanel.java b/src/jrummikub/view/impl/StonePanel.java index 9bcffae..b47c354 100644 --- a/src/jrummikub/view/impl/StonePanel.java +++ b/src/jrummikub/view/impl/StonePanel.java @@ -22,6 +22,10 @@ abstract class StonePanel extends JPanel implements IClickable { return stonePainter; } + public StonePanel() { + this(1); + } + public StonePanel(float scale) { super(true); // Set double buffered diff --git a/src/jrummikub/view/impl/View.java b/src/jrummikub/view/impl/View.java index 4e38a56..31235c6 100644 --- a/src/jrummikub/view/impl/View.java +++ b/src/jrummikub/view/impl/View.java @@ -17,7 +17,7 @@ public class View extends JFrame implements IView { private Table table; private PlayerPanel playerPanel; - private final static int PLAYER_PANEL_HEIGHT = 150; + private final static int PLAYER_PANEL_HEIGHT = 140; public ITable getTable() {