我只是在试验JFrames,并且想知道我的应用程序窗口是否完全可见或被其他应用程序窗口遮挡。其他应用程序窗口可以是本机应用程序。如果可以,我可以检索不可见区域的大小和位置吗?
答案 0 :(得分:1)
这是非常讨厌的方法,这是我能想到的唯一方法(并且不推荐):
JFrame
的玻璃窗格设置为完全红色并显示玻璃窗格(暂时)。Robot
类从JFrame
当前所在的屏幕坐标中对所有像素(或多个像素)进行采样。JFrame
前面可能没有任何内容。替代方案(更好的解决方案)
只需致电toFront()
上的JFrame
,将其置于最前方并确保其具有焦点。
答案 1 :(得分:0)
不可能,因为您的Java应用程序只知道其窗口内容,而不知道其他内容。窗口装饰和屏幕的其余部分由操作系统管理。在像Linux这样的Unix操作系统中,窗口管理器甚至是一个完全不同的用户空间进程。另一个本机应用程序也将在另一个用户空间进程中运行。
我可以问你为什么要这样吗?如果您询问刷新/重绘问题,那么您无需做任何事情。您的操作系统有望足够智能,并且当它再次可见时,它会要求您的应用程序重新绘制。