私のスイングGUIのほとんどは、自分自身を中心に置く直前にちらつきを感じました。これは、私が作ったほぼすべてのJFrameで起こりました。回避策があるかどうか疑問に思っていました。私は通常setVisible(true)
、次にpack()
とし、その後にsetLocationRelativeTo(null)
とします。これは右上に表示され、それからそれを中心にします。私はちらつきが起こっていることを知っていますが、それはそれぞれのメソッド呼び出しに時間がかかりますが、これを回避する方法があります。場所を移動する前のJFramesのフリッカー
答えて
この順序(およびこれらのメソッド)が優れていますlike this:
もちろん、フリッカーがなくても、揺らぶことなく、またはが揺れます。 ;)
ことに伴う問題(
setLocationRelativeTo(null)
)は、GUIの右上隅全体JFrameの中心とされないことです。
と呼ばれている(あなたが現在行っているとしてではなくpack()
を使用)JFrame
のdefualtサイズは0x0です、それはpack()
またはsetSize()
までそのようにとどまります。したがって、0x0コンポーネントを画面の中央に配置するよう要求すると、JREは0x0サイズのコンポーネントの「中間ピクセル」を画面の正確な中央に配置します。
最初にパックする場合、のサイズはであり、この方法は期待どおりに動作します。例えば。
frame.pack();
frame.setLocationRelativeTo(null); // show my splash screen!
frame.setVisible(true);
最後にsetLocationRelativeTo(null)
、次にsetVisible(true)
を実行する必要があります。
frame.pack();
frame.setLocationByPlatform(true); // superior to centering
frame.setVisible(true);
あなたがそれを行うの可視フレームの数を設定した場合、彼らは何かを表示されることがあります。
問題点は、GUIの右上が中央になり、JFrame全体ではないことです。 – imbuedHope
'pack()'は、 'setLocationRelativeTo(null)'の前に***と呼ばれ、中央に置く必要があります。私はそれがGP Singhが意味するものだと思います。 (しかし私の答えでは、メソッド呼び出しの順番についてもっと明示していました) –
私の答えを編集することも見てください。うまくいけば何が起こっているのか説明します。 –
- 1. Vim - 前の場所に移動
- 2. 場所を移動するプログラム
- 3. svnフォルダをある場所から別の場所に移動する方法
- 4. SSISある場所から別の場所にデータを移動する
- 5. GWT内のある場所から別の場所への移動
- 6. cocos2dの特定の場所でオブジェクトを移動する方法
- 7. 仲間のブログ記事の場所を移動する
- 8. データベースから移動するときにビジネスロジックを移動する場所
- 9. JFramesの中にJFramesを配置する
- 10. プロジェクトエクスプローラのファイルの場所に移動するNetBeansのショートカット
- 11. スタックを特定の場所に移動する
- 12. ファイルを2つの場所に移動するバッチコマンド
- 13. LoginFormを別の場所に移動する方法
- 14. HelpLibraryを別の場所に移動する
- 15. ある場所から別の場所にフォルダ(ディレクトリ)を移動する - 誤動作
- 16. 画像の特定の場所に移動する
- 17. SQLiteをある場所から別の場所に移動する:アプリケーションがクラッシュし、互換性のないタイプ
- 18. FTPで1つの場所から別の場所にファイルを移動することは可能ですか?
- 19. タップした場所に画像を移動する - iPhone
- 20. 移動中にAndroidの場所が更新される
- 21. タブとそのタブ内の特定の場所に移動
- 22. Xcodeの場所を移動するMonoDevelopを使用してMonotouchコンパイルを行う
- 23. アップロードされた画像と移動場所の保存
- 24. vimfilesの場所を移動するとsnipmate.vimが壊れますか?
- 25. Expression Blendで現在の場所を基準にしてオブジェクトを移動する
- 26. #hashのアンカーが別のページの間違った場所に移動する
- 27. UIDocumentをファイルシステム上の新しい場所に移動する適切な方法
- 28. ローカルディレクトリから特定のftp場所にファイルを移動するバッチスクリプト
- 29. QSettings:既存のQSettingsオブジェクトのスコープ/場所を移動/変更します。
- 30. 場所を変更するとカメラが移動する(Google Maps API)
+1は 'setLocationByPlatform()'のために+1します。 – trashgod