I am working on an application that has setDecoration(false)
and I have a MouseMotionlistener
so I can move it around, and at the moment I am trying to make a maximize button. On the default monitor it works perfectly, but on a second monitor if I click the maximize button it will maximize to the default screen. How would I get the X & Y coordinates of the screen the application is currently on?
I.E. I have 2 monitors both at 1600x900, so if the application is on monitor 1, the X & Y would be 0 & 0, but if it is one the second monitor it would be 1600 & 0.
But I need it so it works on all sized monitors i.e. 1200x800, or if the monitors are positioned vertical instead of horizontal.
You could use this to get the screen dimensions.
The answer depends on the definition of screen. Do you want the default screen bounds or a specific screen bounds?
I use the following (& variations of it) to determine the screen bounds for an individual screen
The basic idea is to provide a screen location and find the screen that matches it. I have variations the take a
Component
orWindow
but essentially, it boils down to this.From a
MouseEvent
, you can obtain the screen coordinates simply enough with a call to MouseEvent.getLocationOnScreenNow, from your question, it sounds like you want to know the entire "virtual" screen bounds (I might be wrong), but I use this method (actually I use it to create multi-monitor wallpapers on the fly, but that's another question)
Basically, it just walks all the screen devices and add's there regions together to form a "virtual" rectangle. You could use the same concept to return the bounds of each screen device as an array instead.