public void equipWeapon() {
		// Get all available weapons
		String[] playerItems = player.getInventory().getWeaponTexts();
		if (playerItems.length == 0) {
			log.println("You have nothing to wield.");
		} else {
			JPanel panel = new JPanel();
			panel.setLayout(new GridLayout(0, 1));
			final JRadioButton[] radioButtons = new JRadioButton[playerItems.length];
			final String idsString = descriptionsToIDString(playerItems);
			ButtonGroup buttons = new ButtonGroup();
			// Set up actions for every ID to toggle the appropriate checkbox
			Action charAction = new AbstractAction() {
				public void actionPerformed(ActionEvent e) {
					int index = idsString.indexOf(e.getActionCommand());
					if (index != -1) {
						JRadioButton button = radioButtons[index];
						button.setSelected(!button.isSelected());
					} else {
						println(e.getActionCommand() + " is not a valid ID, do you have capslock on?");
					}
				}
			};
			int itemCount = 0;
			panel.add(new JLabel("INVENTORY"));
			for (String f : playerItems) {
				JRadioButton newButton = new JRadioButton(f);
				newButton.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(idsString.substring(itemCount, itemCount+1).toUpperCase()), f);
				newButton.getActionMap().put(f, charAction);
				radioButtons[itemCount] = newButton;
				panel.add(newButton);
				itemCount++;
			}
			JOptionPane.showMessageDialog(null, panel, "What would you like to wield?", JOptionPane.PLAIN_MESSAGE);
			for (JRadioButton button : radioButtons) {
				if (button.isSelected()) {
					// Get the selected item
					Character id = button.getText().charAt(0);
					Weapon weapon;
					weapon = (Weapon) player.getInventory().getItem(id);
					if (player.getEquippedWeapon() != null) {
						if (!player.getEquippedWeapon().equals(weapon)) {
							unequipWeapon();
							println("You wield the " + weapon.properName());
						} else {
							println("You're already wielding the " + weapon.properName());
						}
					} else {
						println("You wield the " + weapon.properName());
					}
					player.setEquippedWeapon(weapon);
				}
			}
		}
	}