summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2011-05-09 01:46:41 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2011-05-09 01:46:41 +0200
commitad3b8ecb48d4d18a79691e111e2875725b3b94e9 (patch)
tree59e7d9b90bde60c0810811baee70a34fdc42506f
parentb86571cf832ff13010798f3607eea6ad0ef039d0 (diff)
downloadJRummikub-ad3b8ecb48d4d18a79691e111e2875725b3b94e9.tar
JRummikub-ad3b8ecb48d4d18a79691e111e2875725b3b94e9.zip
Fix rounding errors in stone positioning on table
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@181 72836036-5685-4462-b002-a69064685172
-rw-r--r--src/jrummikub/view/impl/StonePainter.java2
-rw-r--r--src/jrummikub/view/impl/TablePanel.java15
2 files changed, 10 insertions, 7 deletions
diff --git a/src/jrummikub/view/impl/StonePainter.java b/src/jrummikub/view/impl/StonePainter.java
index 0812beb..dccb01d 100644
--- a/src/jrummikub/view/impl/StonePainter.java
+++ b/src/jrummikub/view/impl/StonePainter.java
@@ -329,7 +329,7 @@ class StonePainter {
boolean selected, boolean hovered) {
int width = getStoneWidth();
int height = getStoneHeight();
- int x = (int) (p.getX() * width), y = (int) (p.getY() * height);
+ int x = Math.round(p.getX() * width), y = Math.round(p.getY() * height);
Map<StoneColor, Map<Integer, BufferedImage>> stoneMap;
diff --git a/src/jrummikub/view/impl/TablePanel.java b/src/jrummikub/view/impl/TablePanel.java
index 7eb798d..7e2dfdb 100644
--- a/src/jrummikub/view/impl/TablePanel.java
+++ b/src/jrummikub/view/impl/TablePanel.java
@@ -152,9 +152,11 @@ class TablePanel extends AbstractStonePanel implements ITablePanel {
@Override
public void handle(Point p) {
- Point p2 = SwingUtilities.convertPoint(stoneCollection, p, TablePanel.this);
+ Point p2 = SwingUtilities.convertPoint(stoneCollection, p,
+ TablePanel.this);
clickAt(p2, 1, false, false);
- }});
+ }
+ });
add(stoneCollection);
addComponentListener(new ComponentAdapter() {
@@ -263,8 +265,8 @@ class TablePanel extends AbstractStonePanel implements ITablePanel {
.getStoneHeight();
// Left connector
- connectorArea.add(new Area(new Rectangle2D.Float((int) (x * width - width
- * CONNECTOR_WIDTH), (int) (pos.getY() * height),
+ connectorArea.add(new Area(new Rectangle2D.Float(Math.round(x * width)
+ - (int) width * CONNECTOR_WIDTH, Math.round(pos.getY() * height),
(int) (width * CONNECTOR_WIDTH), height)));
for (Stone stone : stoneSet) {
@@ -274,8 +276,9 @@ class TablePanel extends AbstractStonePanel implements ITablePanel {
}
// Right connector
- connectorArea.add(new Area(new Rectangle2D.Float((int) (x * width),
- (int) (pos.getY() * height), (int) (width * CONNECTOR_WIDTH), height)));
+ connectorArea.add(new Area(new Rectangle2D.Float(Math.round(x * width),
+ Math.round(pos.getY() * height), (int) (width * CONNECTOR_WIDTH),
+ height)));
}
@Override