I’ve been working on a simple Tic Tac Toe game. Most things going well, but I’ve been working on the painting of the X’s and O’s within the insets of a given JButton. In the end, the calculation that actually centered it drove me crazy: I had to use 2 * the width of paint stroke.
Anyway, I’m looking for a cleaner way to draw the X and O Icon within a JButton. Here’s the current image; it currently resizes well, but there’s gotta be another way. Any suggestions? Thanks in advance. Here’s the paint code:
public void paintIcon(Component c, Graphics g, int x, int y) { if (!CLEAR_SQUARE.equals(type)) { int strokeWidth = calcStrokeWidth(getWidth(), getHeight()); int strokeWidthX2 = strokeWidth * 2; Insets insets = getInsets(); int width = getWidth() - strokeWidthX2 - insets.left - insets.right; int height = getHeight() - strokeWidthX2 - insets.top - insets.bottom; int left = insets.left + strokeWidth; int right = left + width; int top = insets.top + strokeWidth; int bottom = top + height; Graphics2D g2 = (Graphics2D) g; g2.setStroke(getStroke(strokeWidth)); g2.setColor(getForeground()); g2.setBackground(getBackground()); if (X_SQUARE.equals(type)) { g2.drawLine(left, top, right, bottom); g2.drawLine(left, bottom, right, top); } else if (O_SQUARE.equals(type)) { g2.drawOval(left, top, width, height); } } }