JInternalFrame
をJDesktopPaneのすべてのフレームの先頭にプッシュするにはどうすればよいですか?JInternalFrame to front and focussed
答えて
JInternalFrame APIを読み、アクティブな内部フレームを「選択」する方法の実例がある「内部フレームの使い方」のSwingチュートリアルへのリンクに従ってください。
grabFocus()とrequestFocus()を試してください。 1つはうまくいくはずです。私は個人的にrequestFocus()のみを使用しました。
私のためには機能しません。また、(それがうまくいけば)、APIによると、あなたはrequestFocusInWindow()を使用する必要があります。 – camickr
動作しませんでした。 desktop.getDesktopManager()を使用して終了しました。activateFrame(jif); JIFがJInternalFrameの場合 – davidahines
この場合、grabFocus()、requestFocus()、またはtransferFocus()のどちらも動作しません。 setSelected(true)、私のために働いた。 – lepe
このexampleでは、メニューからフレームを選択するのにjavax.swing.Action
が使用されます。 * /その後、
/*(偽)するsetSelected JInternalFrameのメソッドを呼び出すことにより、選択解除現在のJInternalFrameを作る
同じ方法を使用して新しいJInternalFrameのを選択します。すなわち(真)するsetSelected
サンプルコード:
試し{ jframe1.setSelected(偽); jframe2.setSelected(true); }キャッチ(はPropertyVetoExceptionの例){}
Closing a modal JInternalFrame 氏禅(私)によってポストを参照してください
OPはsetSelected
が働いていなかったと指摘している、と彼は手動activateFrame
を呼び出すために必要な。これは私がGTKLookAndFeel
としていた問題と似ています。私はすべて最終的にactivateFrame
をトリガーするためにsetSelected
を使用するように配線されたアプリケーションを持っていました。 WindowsとMacのネイティブなルック&フィールでうまく動作しました。 activateFrame
が自動的に呼び出されます。
Ubuntuでは、LaFを選択したシステムはGTKLookAndFeel
であり、何らかの理由でactivateFrame
が呼び出されていませんでした。 setSelected
がエラーや何かを投げているようには見えなかったが、他のLaFsがそうしているようにactivateFrame
と呼ぶことにはならなかった。私はそれがGTKLookAndFeel
の互換性の問題だと思う。
最後に私はこれに賭けてGTKLookAndFeel
を禁止し、それをMetal
に置き換えました。 Motif
も互換性のある動作をしていました(しかし、それはとても醜いです...)。コードは次のようになります。
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
if (UIManager.getLookAndFeel() instanceof com.sun.java.swing.plaf.gtk.GTKLookAndFeel)
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
+1おそらくそれはそれを説明しています。私はUbuntuで "Nimbus"を使用しています。 – lepe
- 1. Java JInternalFrame to JPanel
- 2. Eclipse SWT Shell to JInternalFrame
- 3. ユーザーコントロールから「Bring to front」
- 4. how to textview and android
- 5. 「Bring To Front」または「Send To Back」のコードは正しいですか?
- 6. 'bring to front'イベントを検出しますか?
- 7. JInternalFrameカスタムオンスクリーンキーボード
- 8. Linq To SQL Group By and Sum
- 9. Linq to XML、yield and others
- 10. Python and openCV to Android APK
- 11. IBM Watson Speech to Text and webm
- 12. Slick one to many and grouping
- 13. Preg_match、Replace and string to back
- 14. VLookup to Future Sheets and Files
- 15. VB.NET Text to Speech and Multiple Languages
- 16. JQuery ScrollLeft to Origin and Equal Increments
- 17. POST json and image to serverアンドロイド
- 18. Linq to SQL Join and Where
- 19. Magento Admin/Front SplitサーバーRedisエラー
- 20. DDD Repo-repo.findByChildId(id)AND repo.transferChild(to、from、child)
- 21. c#Response.Write and End()Json String to long
- 22. モーダルJInternalFrameを閉じる
- 23. JFrameにJInternalFrameを追加する方法
- 24. JFreechartのJInternalFrameでの例外
- 25. front()とbegin()の違い
- 26. Mysql-frontが開かない
- 27. Double Content add query front css content
- 28. Azure AD B2C Angular front + Django Backend
- 29. JPanelからJInternalFrameを隠す
- 30. JInternalFrame再描画の問題
DestopManager.activateFrame(frame)が解決策であることが判明しました。私はそこの例の一つからそれを導き出しました。助けてくれてありがとう。 – davidahines
@dah、私はframe.setSelected(true)がもっと簡単だと思ったでしょう。これは、新しいフレームが作成されるたびにこの例が使用するものです。私はチュートリアルで参照されているactivateFrame()メソッドを見たことがありません。 – camickr
私はなぜそれがわからないのですが、それは私にとってはうまくいきませんでした。 – davidahines