@Override
	protected void paintScreen(Graphics2D g) {
		paintInstructions(g);

		int maxNbChoicesOnScreen = (getScreenHeight() - INSTRUCTIONS_AREA_HEIGHT)
				/ CHOICE_HEIGHT - 1;
		int start = 0;
		if (selectedIndex >= maxNbChoicesOnScreen) {
			start = selectedIndex - maxNbChoicesOnScreen + 1;
		}

		int lastChoiceToDisplay = Math.min(start + maxNbChoicesOnScreen,
				choices.length);
		for (int index = start; index < lastChoiceToDisplay; index++) {
			Choice choice = choices[index];
			String str = getDisplayName(choice);
			if (index == selectedIndex) {
				g.setColor(SELECTED_CHOICE_COLOR);
				g.setFont(SELECTED_CHOICE_FONT);
				str = "\u00bb " + str + " \u00ab";
			} else {
				g.setColor(DEFAULT_CHOICE_COLOR);
				g.setFont(DEFAULT_CHOICE_FONT);
			}
			GUIUtils.drawCenteredString(g, str, getScreenWidth(),
					INSTRUCTIONS_AREA_HEIGHT + CHOICE_HEIGHT * (index - start));
		}
		if (lastChoiceToDisplay < choices.length) {
			g.setFont(DEFAULT_CHOICE_FONT);
			g.setColor(DEFAULT_CHOICE_COLOR);
			GUIUtils.drawCenteredString(g, "...", getScreenWidth(),
					INSTRUCTIONS_AREA_HEIGHT + CHOICE_HEIGHT
							* maxNbChoicesOnScreen);
		}
	}