public Icon getIcon() {
    if (tile == null) {
      return null;
    }
    else if (!tile.isFaceUp()) {
      return ICON_FACE_DOWN;
    }
    else if (tile instanceof Bear) {
      return ICON_BEAR;
    }
    else if (tile instanceof Duck) {
      return ICON_DUCK;
    }
    else if (tile instanceof Fox) {
      return ICON_FOX;
    }
    else if (tile instanceof Hunter) {
      // Hunter's icon depends on direction
      return getHunterIcon((Hunter) tile);
    }
    else if (tile instanceof Lumberjack) {
      return ICON_LUMBERJACK;
    }
    else if (tile instanceof Pheasant) {
      return ICON_PHEASANT;
    }
    else if (tile instanceof Tree) {
      return ICON_TREE;
    }
    else {
      throw new IllegalStateException(
          "Unknown tile class " + tile.getClass().getName());
    }
  }