Get effective screen size from Java

Rasmus Faber picture Rasmus Faber · Apr 12, 2012 · Viewed 46.2k times · Source

I would like to get the effective screen size. That is: the size of the screen without the taskbar (or the equivalent on Linux/Mac).

I am currently using...

component.getGraphicsConfiguration().getBounds()

...and subtracting the default taskbar size depending on the OS, but I would like a way that works even if the user has resized/moved the taskbar.

Answer

moeTi picture moeTi · Apr 12, 2012

GraphicsEnvironment has a method which returns the maximum available size, accounting all taskbars etc. no matter where they are aligned:

GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds()

Note: On multi-monitor systems, getMaximumWindowBounds() returns the bounds of the entire display area. To get the usable bounds of a single display, use GraphicsConfiguration.getBounds() and Toolkit.getScreenInsets() as shown in other answers.