プログラムが最小化されたときにパネルを再描画するプログラムを停止できますか? *スウィングを使用最小化するとウィンドウの再描画を防止します
答えて
hereを見つけることができます私の前の例に小さな変更を加えるような単純なものができているWindowListenerの使用例:
あなたがJFrame
を使用している場合は、あるウィンドウの最小化イベントを検出することができます
private static void createAndShowGui() {
ShowGraph showGraphPanel = new ShowGraph(MAX_POINTS);
TimerListener timerListener = new TimerListener(MAX_POINTS, showGraphPanel);
JFrame frame = new JFrame("TestShowGraph");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(showGraphPanel);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
// Timer now made a final variable so it can be referred to
final Timer timer = new Timer(TIMER_DELAY, timerListener);
timer.start();
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowOpened(WindowEvent arg0) {
timer.start();
}
@Override
public void windowIconified(WindowEvent arg0) {
timer.stop();
}
@Override
public void windowDeiconified(WindowEvent arg0) {
timer.start();
}
@Override
public void windowActivated(WindowEvent arg0) {
timer.start();
}
});
}
実際の問題は、アニメーションループなどを最小限に抑えることです。
myFrame.addWindowStateListener(
new WindowStateListener() {
@Override
public void windowStateChanged(WindowEvent evt) {
if (myFrame.getState() == Frame.ICONIFIED) {
// suspend painting/animation loops
} else {
// resume or continue painting/animation loops
}
}
}
);
あなたはどうやってサスペンドしますか? –
@Chris:Swing Timersで利用できるメソッドを見てください。あなたはそれを理解するでしょう。 –
@Chris - あなたのアニメーションが 'javax.swing.Timer'によって駆動されている場合は、単にアニメーションを中断/再開するためにタイマーの' stop() 'と' start() 'メソッドを呼び出すことができます。いくつかのサンプルコードについては、[Threads and Swing](http://java.sun.com/products/jfc/tsc/articles/threads/threads1.html)の記事を参照してください。 –
- 1. WPFウィンドウを描画/再描画/リフレッシュ/ペイントするシステムの回避/防止方法
- 2. モバイルで再描画の背景画像を防止する
- 3. WA_TranslucentBackgroundをオフにするとウィンドウの再描画を停止します
- 4. BlackBerry - レイアウトの変更中に画面の再描画を防止し、一度にすべてを再描画
- 5. 親ウィンドウが最小化されたときの子ウィンドウの最小化を防ぐ方法
- 6. ウィンドウが最小化するのを防ぐ方法は?
- 7. GLJPanel再描画を停止します
- 8. createjsキャンバスの最適化の再描画
- 9. Qt C++最小化と最大化ウィンドウ
- 10. ajaxコールを使用してデータをフェッチするとき、ハイチャートの再描画を防止します。
- 11. Delphi - システムメッセージの保持/ UI再描画の防止?
- 12. 自動ユーザーが最小化するとウィンドウを最大化
- 13. SDL最小化ウィンドウ
- 14. javafx2のウィンドウを最小化
- 15. ウィンドウを最小化する方法は?
- 16. ウィンドウをシステムトレイに最小化する
- 17. ウィンドウのデフォルトとして最小化を設定するには?
- 18. ウィンドウの最大化/最小化を無効にする
- 19. 最小化と最大化されたウィンドウでbash imagemagickインポート画面キャプチャ
- 20. MPxLocatorNodeの描画を最適化する
- 21. Quartz2Dとクリッピング - この描画ルーチンを最適化しますか?
- 22. ウィンドウから最小化/最大化ボタンを削除する、OpenTK
- 23. R Shiny - sidebarPanelを最小化するとMainPanelウィンドウのサイズを変更します
- 24. Divブラウザのウィンドウを最小化するときに隠れる
- 25. 角4入力[type = 'number']最小/最大での入力を防止します
- 26. 最小化と最大化を伴う剣道ウィンドウ
- 27. クラスプロパティのシリアル化を防止します
- 28. Wordウィンドウを最小化するとCOMの速度が向上しますか?
- 29. ウィンドウのQPainter描画を再描画してフォーカスを取得/失う
- 30. ウィンドウのサイズ変更を防止する
どのフレームワークを使用していますか?スイング? AWT? SWT?その他? –
@TedHopp Swing申し訳ありません –
再ペイントが発生するとどうなりますか?これは、あなたの 'paint'や' paintComponent'メソッドにプログラムロジックを持っているような、もっと大きな問題が潜んでいるのではないかと思います。 –