public static List<Monitor> getMonitors()
	{
		List<Monitor> monitors = new ArrayList<Monitor>();
		GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
		GraphicsDevice[] gdArray = ge.getScreenDevices();
		String previous = "";

		for (int i = 0; i < gdArray.length; i++)
		{
			GraphicsDevice gd = gdArray[i];
			GraphicsConfiguration[] gcArray = gd.getConfigurations();
			for (int j = 0; j < gcArray.length; j++)
			{
				Rectangle bounds = gcArray[j].getBounds();
				String current = gcArray[j].getDevice().getIDstring();
				if (current.equals(previous) == false)
				{
					monitors.add(new Monitor(gdArray[i], gcArray[j], current, bounds));
					previous = current;
				}
			}
		}

		if (monitors.size() == 0)
			return null;

		return monitors;
	}