import java.awt.*; public class Cell { Rectangle cell; char value; Color color = Color.black; final static char OFF = ' ', ON = '*', EX = 'X', OH = 'O'; // state of a cell public Cell(int x, int y, int size, char val) { cell = new Rectangle(x, y, size, size); value = val; // System.out.println("Cell@" + x + "," + y + ": " + value); } public Cell(int x, int y, int size) { this(x, y, size, OFF); } public char get( ) { return value; } public void set(char val) { value = val; } public Color getColor( ) { return color; } public void setColor(Color c) { color = c; } public boolean contains(int x, int y) { return cell.contains(x, y); } public void paint(Graphics g) { int size = cell.width; int x = cell.x; int y = cell.y; switch (value) { case OFF: g.setColor(Color.white); g.fillRect(x, y, size, size); g.setColor(color); break; case ON: g.setColor(color); g.fillRect(x, y, size, size); break; case EX: g.setColor(Color.white); g.fillRect(x, y, size, size); g.setColor(color); g.drawLine(x, y, x+size, y+size); g.drawLine(x+size, y, x, y+size); break; case OH: g.setColor(Color.white); g.fillRect(x, y, size, size); g.setColor(color); g.drawOval(x+1, y+1, size-2, size-2); break; } // switch g.setColor(Color.black); g.drawLine(x, y, x+size, y); g.drawLine(x, y+size, x+size, y+size); g.drawLine(x, y, x, y+size); g.drawLine(x+size, y, x+size, y+size); } // paint }