我只是試驗JFrames,並想知道我的應用程序窗口是否完全可見或被其他應用程序窗口遮擋。另一個應用程序窗口可以是本機應用程序。如果可以,我可以檢索不可見區域的大小和位置嗎?是否有可能知道JFrame是否完全可見?
3
A
回答
0
不,這是不可能的,因爲你的Java應用程序只知道它的窗口內容,而沒有別的。窗飾和屏幕的其餘部分由操作系統管理。在像Linux這樣的操作系統中,窗口管理器甚至是一個完全不同的用戶空間進程。另一個本地應用程序也將在另一個用戶空間進程中運行。
請問爲什麼要這麼做?如果您詢問刷新/重繪問題,則無需執行任何操作。您的操作系統有足夠的智能,並且會在您的應用程序再次變爲可見時要求您重新進行重新繪製。
1
這裏是一個真是可惡做法,這是我能想到的(和不推薦)的唯一方法:
- 設置你的
JFrame
的玻璃面板是完全紅色,顯示玻璃窗格(暫時)。 - 使用
Robot
類從當前放置JFrame
的屏幕座標對所有像素(或多個像素)進行採樣。 - 如果您的所有樣品(或根據某個閾值的大多數樣品)均爲紅色,那麼您的
JFrame
可能沒有任何樣品。 - 最後,再次隱藏玻璃窗格。
替代(更好的解決方案)
直接讓toFront()
您JFrame
將其帶到前面,確保它焦點。
相關問題
- 1. 如何知道滾動內部查看是否完全可見
- 2. 是否有可能使透明div的內容完全可見?
- 3. 是否有可能知道從哪個
- 4. 檢查UITableViewCell是否完全可見
- 5. 檢查TextView是否完全可見
- 6. 檢查元素是否完全可見
- 7. 是否有可能知道我的訪客是否登錄Facebook?
- 8. 是否有可能知道BufferedReader.readLine()是否會提前返回null?
- 9. Mongoose.js:是否有可能知道字段是否已填充
- 10. 是否有可能知道serialVersionUID是否自動生成?
- 11. 有什麼辦法可以知道DataGridViewCell是否可見?
- 12. 是否有可能知道哪個線程先完成?
- 13. 是否有可能知道[UIDynamicItemBehavior addLinearVelocity:forItem:]何時已完成運行?
- 14. 是否有可能知道DOM/JavaScript圖像是否具有Alpha通道
- 15. 是否可以檢查通知是否可見或取消?
- 16. 是否有可能知道Windows窗口小部件是否完全被其他窗口覆蓋?
- 17. 是否有可能知道,如果該參數是默認的
- 18. 只是想知道是否有可能的數據丟失?
- 19. 是否有可能知道哪些文件是由火狐硒
- 20. 是否有可能知道活動是如何開始的?
- 21. 是否有可能知道你是否查看是MainView或DetailView的UISplitViewController
- 22. Eclipse如何知道Swing Designer是否可用於JFrame派生類?
- 23. 是否有可能在php中知道(服務器)CPU性能?
- 24. 是否有可能中斷完成()
- 25. 確定通知面板是否可見
- 26. 是否有可能知道我們是否已經在iframe中了
- 27. 是否有可能知道一個類是否被擴展方法擴展?
- 28. 在Java中,是否有可能知道某個類是否已被加載?
- 29. 是否有可能知道一個串口在linux中是否連接/斷開?
- 30. 是否有可能知道圖像是否在iPhone系統緩存中?
我正在考慮分層信息,z-順序,一個特定的應用程序窗口。我的應用程序大小相同,部分透明,因此跟蹤的窗口仍然可見。 如果跟蹤窗口請求焦點我的窗口將被完全遮蔽,然後我可以調用toFront()再次顯示它。但是,如果其他應用程序僅遮蔽了我窗口的某些部分,我知道這不是所請求關注的跟蹤窗口。 我最初的想法是使用RepaintManager和getDirtyRegion()當我的窗口被停用,失去焦點。但我認爲這也不行!? – kolten 2010-02-26 17:21:22
使用GlassPane代替 - http://java.sun.com/docs/books/tutorial/uiswing/components/rootpane.html – Nate 2010-02-27 02:22:32
Hi Nate!你能詳細說明一下嗎?我查看了文檔,但無法看到如何以我想要的方式使用它。 – kolten 2010-02-27 09:18:11