public MessageBox(final JFrame parent, final String title, final String messageString,
			final int imageType) {
		super(parent, title, true);
		final ImagePanel imagePanel = new ImagePanel(imageFilename[imageType]);
		final JLabel messageLabel = new JLabel(messageString);
		final JPanel imageMessagePanel = new JPanel();
		imageMessagePanel.setLayout(new FlowLayout());
		imageMessagePanel.add(imagePanel);
		imageMessagePanel.add(messageLabel);
		final JButton okButton = new JButton("OK");
		okButton.setMnemonic('O');
		okButton.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(final ActionEvent ae) {
				setVisible(false);
				dispose();
			}
		});
		okButton.addKeyListener(new KeyListener() {
			@Override
			public void keyPressed(final KeyEvent ke) {
				if ((KeyEvent.getKeyText(ke.getKeyCode()).equals("Enter"))
						|| (KeyEvent.getKeyText(ke.getKeyCode()).equals("Escape"))) {
					setVisible(false);
					dispose();
				}
			}

			@Override
			public void keyReleased(final KeyEvent ke) {
			}

			@Override
			public void keyTyped(final KeyEvent ke) {
			}
		});
		final JPanel buttonPanel = new JPanel();
		buttonPanel.setLayout(new FlowLayout());
		buttonPanel.add(okButton);
		setLayout(new GridLayout(2, 1));
		add(imageMessagePanel);
		add(buttonPanel);
		addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(final WindowEvent e) {
				e.getWindow().setVisible(false);
				e.getWindow().dispose();
			}
		});
		validate();
		pack();
		setResizable(false);
		setCenteredInParent(parent);
		play("audio/notification.wav");
		setVisible(true);
	}