默认位置如何工作?/什么是默认监视器



我正在开发一些应用程序,它可以为用户的多个显示器获取宽度,假设他们顶部没有任何显示器,然后为他们提供多个按钮/框架,这样他们就可以屏蔽他们想要的任何显示器。

我的问题除了位置兼容性之外,一切都很好。如果有人有4个1920宽度的监视器,我如何将我的参考/起始帧定位在最左边的监视器,这样我就可以说";进行1920像素,制作一帧"?你会认为"使用setLocationtoNull,但这是如何工作的??你可能会认为它只是中间的显示器,长度/2;但是中间的显示器是什么!?它不能是totalScreenLength/2,因为这意味着程序在监视器之间被一分为二!(所以它很可能在主操纵器的中间(。不使用任何setLocations,程序位于主监视器的左上角。。。。但是主显示器是什么??

如果我知道java是如何计算哪个监视器的"main";,这将解决我的问题(不,仅通过Toolkit.getScreenSize()了解主监视器的分辨率是不够的(。

//creating invis black frames
for(int c=0;c<inArr.length;c++){
int xLoc=0;
for(int i=0;i<c;i++){
/**/    xLoc+=resList[i];
}System.out.println(xLoc);
JFrame blackOut=new JFrame();
blkList.add(blackOut);
blackOut.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
blackOut.getContentPane().setBackground(Color.BLACK);
blackOut.setUndecorated(true);

blackOut.setSize(resList[c],5000);
/**/blackOut.setLocation(xLoc-1280,-2000);

blackOut.setVisible(false);
}

这是使程序工作的代码,因为它是为我的128019201440设置而硬编码的。问题是在blackOut.setLocation(xLoc-1280,-2000);,我必须知道起始帧的确切位置,这样我就可以将帧向左移动,这样"缩放"就可以了。这就是这里发生的事情:帧从我中间1920显示器的左上角开始,所以我将帧向左移动1280像素,使其位于我最左边显示器的左上方。

很抱歉,如果这太冗长了,只想提供足够的细节。此外,最近发现了这一点,并对其文档进行了研究,但我不明白如何使用这些数据,也不确定它是否能够为我提供必要的信息(知道什么监视器是主要的,并且能够区分监视器,即使它们的分辨率相同(

这可能是部分答案。从您的链接发现中,您可以通过调用graphicsDevice.getDefaultConfiguration().getBounds()来获得每个设备的默认配置和边界。这包括每个屏幕的坐标/偏移以及单个屏幕的大小。在GraphicsEnvironment.getScreenDevices()SunGraphicsEnvironment的实现中,屏幕设备是通过迭代屏幕数量并为每个索引创建一个设备来创建的——索引被传递给每个设备。

相关内容

  • 没有找到相关文章

最新更新