Paint value on selected stones darker
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@45 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
54271eb86d
commit
d028cb8a0c
2 changed files with 17 additions and 24 deletions
|
@ -27,16 +27,6 @@ public class Board extends StonePanel implements IBoard {
|
||||||
super(DEFAULT_SCALE);
|
super(DEFAULT_SCALE);
|
||||||
|
|
||||||
setBorder(new CustomBorder(Color.DARK_GRAY, 0, 1, 0, 1));
|
setBorder(new CustomBorder(Color.DARK_GRAY, 0, 1, 0, 1));
|
||||||
|
|
||||||
/*addMouseListener(new MouseAdapter() {
|
|
||||||
@Override
|
|
||||||
public void mouseClicked(MouseEvent e) {
|
|
||||||
Insets insets = getInsets();
|
|
||||||
|
|
||||||
clickEvent.fire(stonePainter.calculatePosition(e.getX() - insets.left,
|
|
||||||
e.getY() - insets.top));
|
|
||||||
}
|
|
||||||
});*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -22,7 +22,7 @@ class StonePainter {
|
||||||
private static final float CIRCLE_WIDTH = 0.45f;
|
private static final float CIRCLE_WIDTH = 0.45f;
|
||||||
|
|
||||||
private static final Color BACKGROUND_COLOR = new Color(0.9f, 0.9f, 0.6f);
|
private static final Color BACKGROUND_COLOR = new Color(0.9f, 0.9f, 0.6f);
|
||||||
private static final Color HIGHLIGHTED_COLOR = BACKGROUND_COLOR.darker();
|
private static final Color SELECTED_COLOR = BACKGROUND_COLOR.darker();
|
||||||
|
|
||||||
private static final float BRIGHTER_SCALE = 1.15f;
|
private static final float BRIGHTER_SCALE = 1.15f;
|
||||||
|
|
||||||
|
@ -119,8 +119,7 @@ class StonePainter {
|
||||||
g.fillRect(x+1, y+height-2, width-2, 1);
|
g.fillRect(x+1, y+height-2, width-2, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void paintJokerFace(Graphics2D g, int x, int y, int width, int height,
|
private void paintJokerFace(Graphics2D g, int x, int y, int width, int height) {
|
||||||
Stone stone) {
|
|
||||||
Stroke oldStroke = g.getStroke();
|
Stroke oldStroke = g.getStroke();
|
||||||
|
|
||||||
g.setStroke(new BasicStroke(2));
|
g.setStroke(new BasicStroke(2));
|
||||||
|
@ -170,26 +169,26 @@ class StonePainter {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void paintJoker(Graphics2D g, int x, int y, int width, int height,
|
private void paintJoker(Graphics2D g, int x, int y, int width, int height,
|
||||||
Stone stone) {
|
Color color) {
|
||||||
int faceSize = even(FACE_WIDTH*width);
|
int faceSize = even(FACE_WIDTH*width);
|
||||||
int pos = y + (int)(TEXT_POS*height);
|
int pos = y + (int)(TEXT_POS*height);
|
||||||
|
|
||||||
g.setColor(getColor(stone.getColor()));
|
g.setColor(color);
|
||||||
paintJokerFace(g, x+width/2-faceSize/2, pos-faceSize/2, faceSize, faceSize, stone);
|
paintJokerFace(g, x+width/2-faceSize/2, pos-faceSize/2, faceSize, faceSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void paintStoneNumber(Graphics2D g, int x, int y, int width,
|
private void paintStoneNumber(Graphics2D g, int x, int y, int width,
|
||||||
int height, Stone stone) {
|
int height, Color color, int v) {
|
||||||
int pos = y + (int)(TEXT_POS*height);
|
int pos = y + (int)(TEXT_POS*height);
|
||||||
|
|
||||||
g.setFont(new Font("SansSerif", Font.BOLD, height/4));
|
g.setFont(new Font("SansSerif", Font.BOLD, height/4));
|
||||||
FontMetrics fm = g.getFontMetrics();
|
FontMetrics fm = g.getFontMetrics();
|
||||||
String value = Integer.toString(stone.getValue());
|
String value = Integer.toString(v);
|
||||||
Rectangle2D stringRect = fm.getStringBounds(value, g);
|
Rectangle2D stringRect = fm.getStringBounds(value, g);
|
||||||
|
|
||||||
g.setColor(getColor(stone.getColor()).darker());
|
g.setColor(color.darker());
|
||||||
g.drawString(value, (int)(x+width/2-stringRect.getWidth()/2)+1, pos+(fm.getAscent()-fm.getDescent())/2+1);
|
g.drawString(value, (int)(x+width/2-stringRect.getWidth()/2)+1, pos+(fm.getAscent()-fm.getDescent())/2+1);
|
||||||
g.setColor(getColor(stone.getColor()));
|
g.setColor(color);
|
||||||
g.drawString(value, (int)(x+width/2-stringRect.getWidth()/2), pos+(fm.getAscent()-fm.getDescent())/2);
|
g.drawString(value, (int)(x+width/2-stringRect.getWidth()/2), pos+(fm.getAscent()-fm.getDescent())/2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -205,8 +204,8 @@ class StonePainter {
|
||||||
g.drawArc((int)(x+width/2-size/2), pos-size/2, size, size, -130, 170);
|
g.drawArc((int)(x+width/2-size/2), pos-size/2, size, size, -130, 170);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void paintStone(Graphics2D g, Stone stone, Position p, boolean highlighted) {
|
public void paintStone(Graphics2D g, Stone stone, Position p, boolean selected) {
|
||||||
Color background = highlighted ? HIGHLIGHTED_COLOR : BACKGROUND_COLOR;
|
Color background = selected ? SELECTED_COLOR : BACKGROUND_COLOR;
|
||||||
int width = getStoneWidth();
|
int width = getStoneWidth();
|
||||||
int height = getStoneHeight();
|
int height = getStoneHeight();
|
||||||
|
|
||||||
|
@ -215,10 +214,14 @@ class StonePainter {
|
||||||
|
|
||||||
paintStoneBackground(g, x, y, width, height, background);
|
paintStoneBackground(g, x, y, width, height, background);
|
||||||
|
|
||||||
|
Color color = getColor(stone.getColor());
|
||||||
|
if (selected)
|
||||||
|
color = color.darker();
|
||||||
|
|
||||||
if (stone.isJoker()) {
|
if (stone.isJoker()) {
|
||||||
paintJoker(g, x, y, width, height, stone);
|
paintJoker(g, x, y, width, height, color);
|
||||||
} else {
|
} else {
|
||||||
paintStoneNumber(g, x, y, width, height, stone);
|
paintStoneNumber(g, x, y, width, height, color, stone.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
paintCircle(g, x, y, width, height, background);
|
paintCircle(g, x, y, width, height, background);
|
||||||
|
|
Reference in a new issue