
java如何获取显示器的坐标
用户关注问题
我有多显示器环境,需要在Java程序中获取每个显示器的位置和大小,应该怎样实现?
使用GraphicsEnvironment和GraphicsDevice获取多显示器坐标
Java的GraphicsEnvironment类可以帮助获取所有的GraphicsDevice,每个设备对应一个显示器。通过调用GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices(),可以得到所有显示器的数组。随后,可以使用每个GraphicsDevice的getDefaultConfiguration()方法获取GraphicsConfiguration,进而调用getBounds()方法来获取显示器的坐标和尺寸信息。这样就能在多显示器环境下获取各个屏幕的详细坐标。
我需要知道主显示器的左上角在屏幕坐标系中的位置,Java中怎么实现这个功能?
通过获取主显示器的GraphicsConfiguration来确定起点坐标
在Java里,可以通过Toolkit.getDefaultToolkit().getScreenSize()获得主显示器的分辨率,但此方法返回的是屏幕尺寸,不包含坐标。而更准确的方法是使用GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(),然后调用该设备的getDefaultConfiguration().getBounds(),可以获得主屏幕的位置和大小。通常主显示器的左上角坐标是(0,0),但多屏幕布局时此值可能不同。
我想通过Java程序判断当前鼠标指针所在的显示器,并获得该显示器的坐标范围,怎么做?
结合MouseInfo和显示器边界判断鼠标所在屏幕
Java的MouseInfo类可用来获取当前鼠标的位置,调用MouseInfo.getPointerInfo().getLocation()获得鼠标坐标。随后,通过遍历每个GraphicsDevice对应的GraphicsConfiguration的边界(即getBounds()),判断鼠标点是否在某个显示器的矩形区域内。如果鼠标坐标落在某个显示器的坐标范围内,就可以确定鼠标所在的显示器及其坐标范围。