public void placeGnome() {
		try {
			Graph country = graph;
			if (graph2 != null) {
				Object [] countryOptions = {graph.getName(), graph2.getName()};
				String ans = (String) JOptionPane.showInputDialog(mapFrame, "To which country would you like to add a gnome?",
						"Adding a gnome", JOptionPane.PLAIN_MESSAGE, null, countryOptions, countryOptions[0]);
				if (ans == null) {return;}
				else if (ans.equals(countryOptions[0])) {country = graph;}
				else {country = graph2;}
			}
			if (country.isEmpty()) {throw new GraphEmptyException();}

			Object [] options = villageList(country);
			
			String strVillage = (String) JOptionPane.showInputDialog(mapFrame,
			            "Which village would you like to place the new gnome in?",
			            "Placing a new gnome", JOptionPane.PLAIN_MESSAGE, null, options, options[0]);
			if (strVillage == null) {return;}
			
			Village village = country.find(Integer.parseInt(strVillage));
			village.printGnomes();
			village.insertGnome(new Gnome());
			village.printGnomes();
			
			JOptionPane.showMessageDialog(mapFrame,
	            		"A new gnome has been placed in village " + village.getName(),
	            		"Placing a gnome", JOptionPane.PLAIN_MESSAGE);
			
			mapPanel.removeAll(); 
			drawGraph(); 
			mapFrame.pack();
			} catch (NumberFormatException e) {
				JOptionPane.showMessageDialog(mapFrame, "You did not enter an integer. Try again.", "NumberFormatException", JOptionPane.ERROR_MESSAGE);
			} catch (GraphEmptyException e) {
				JOptionPane.showMessageDialog(mapFrame, e.getMessage(), "GraphEmptyException", JOptionPane.ERROR_MESSAGE);
			} catch (NotFoundException e) { // theoretically not possible
				JOptionPane.showMessageDialog(mapFrame, e.getMessage(), "NotFoundException", JOptionPane.ERROR_MESSAGE);
			} catch (VillageFullException e) {
				JOptionPane.showMessageDialog(mapFrame, e.getMessage(), "VillageFullException", JOptionPane.ERROR_MESSAGE);
			}
	} // end of placeGnome()