如何將JInternalFrame
推到JDesktopPane中所有框架的頂部?JInternalFrame到前面並聚焦
回答
閱讀JInternalFrame API並按照「如何使用內部框架」的Swing教程鏈接,您將在其中找到如何「選擇」活動內部框架的工作示例。
請嘗試grabFocus()和requestFocus()。其中一個應該工作。我個人只使用requestFocus()。
在此example中,javax.swing.Action
用於從菜單中選擇幀。
/*使通過調用取消當前的JInternalFrame的JInternalFrame方法的setSelected(假)
* /,然後選擇使用相同的方法新的JInternalFrame;即的setSelected(真)
示例代碼:
嘗試{ jframe1.setSelected(假); jframe2.setSelected(true); }趕上(PropertyVetoException的前){}
Closing a modal JInternalFrame 看到禪先生(我)
的OP指出,setSelected
不工作後,他需要手動調用activateFrame
。這聽起來與我在GTKLookAndFeel
中遇到的問題類似。我有一個應用程序,所有的接線使用setSelected
最終觸發activateFrame
。使用Windows和Mac原生的外觀和感覺良好地工作; activateFrame
會自動調用。
在Ubuntu上,系統選擇LaF爲GTKLookAndFeel
,無論出於何種原因,這不叫activateFrame
。它似乎沒有出現setSelected
正在拋出一個錯誤或任何東西,它只是沒有得到調用activateFrame
其他LaF似乎做。我認爲這是一個GTKLookAndFeel
兼容性問題。
最後我打了這個,只是禁止GTKLookAndFeel
,用Metal
代替它。 Motif
也有兼容的行爲(但它很醜陋...)。代碼看起來像這樣:
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
if (UIManager.getLookAndFeel() instanceof com.sun.java.swing.plaf.gtk.GTKLookAndFeel)
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
- 1. 將JInternalFrame帶到前面
- 2. 如何找到當前聚焦的InternalFrame?
- 3. 強制窗口前/聚焦?
- 4. 聚焦還是不聚焦
- 5. 聚焦IOS鏈接到API
- 6. 當它有焦點時,展開textarea(並將它帶到前面)
- 7. 聚焦不選擇當前輸入值
- 8. 使NSWindow前臺但沒有聚焦
- 9. Java JInternalFrame到JPanel
- 10. javascript焦點()不聚焦
- 11. JavaScript:縮放並聚焦於圖像
- 12. 聚焦在Excel
- 13. 聚焦textarea
- 14. NSBox聚焦環?
- 15. 聚焦抽象
- 16. 如何模擬按鍵到當前聚焦的窗口?
- 17. 任何方式等待控制檯未聚焦或暫停,直到不聚焦?
- 18. TreeNode總是聚焦
- 19. GTK聚焦事件
- 20. 管理聚焦到HTML表格
- 21. 將KeyEvent發佈到聚焦組件
- 22. 如何聚焦狀態到z3c.form輸入
- 23. 禁用滾動到聚焦按鈕
- 24. 聚焦和聚焦(輸出)事件信號之間的區別
- 25. 防止ListBox聚焦,但保留ListBoxItem(s)可聚焦
- 26. 聚焦/未聚焦窗口的透明度
- 27. 角度2:可以聚焦和聚焦在一個事件嗎?
- 28. CSS懸停,焦點和「未聚焦」
- 29. 將焦點窗口置於前面
- 30. 聚焦DIV出DIV數組
不適用於我。另外(如果它確實有效),根據API,你應該使用requestFocusInWindow()。 – camickr 2010-12-02 18:23:48
沒有工作。結束使用desktop.getDesktopManager()。activateFrame(jif);其中JIF是JInternalFrame – davidahines 2010-12-03 19:06:58
在這種情況下,grabFocus(),requestFocus()或transferFocus()都不起作用。 setSelected(true),爲我工作。 – lepe 2011-12-14 03:39:32