1  import java.util.ArrayList;
  2  import java.util.Scanner;
  3  
  4  /**
  5     A menu that is displayed on a console.
  6  */
  7  public class Menu
  8  {
  9     private ArrayList<String> options;
 10     private Scanner in;
 11  
 12     /**
 13        Constructs a menu with no options.
 14     */
 15     public Menu()
 16     {
 17        options = new ArrayList<String>();
 18        in = new Scanner(System.in);
 19     }
 20  
 21  
 22     /**
 23        Adds an option to the end of this menu.
 24        @param option the option to add
 25     */
 26     public void addOption(String option)
 27     {
 28        options.add(option);
 29     }
 30     
 31     /**
 32        Displays the menu, with options numbered starting with 1,
 33        and prompts the user for input. Repeats until a valid input 
 34        is supplied.
 35        @return the number that the user supplied
 36     */
 37     public int getInput()
 38     {
 39        int input;
 40        do
 41        {
 42           for (int i = 0; i < options.size(); i++)
 43           {
 44              int choice = i + 1;
 45              System.out.println(choice + ") " + options.get(i)); 
 46           }
 47           input = in.nextInt();
 48        }
 49        while (input < 1 || input > options.size());
 50        return input;
 51     }
 52  }
 53  
 54