これは、複数のタブを持つアプリケーションの断片がオフハングJTabbedPanelある: - :だから毎JButtonプレスだけでJPanelをペイントする方法は?
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(device.getVisualisation(), 0, 0, null);
}
-
Iは方法以下の標準のコードの画像を生成していますアプリケーションGUIに何か起きると、paintComponentメソッドが呼び出され、画像が表示されます。それは正常です。
このペイントイベントは、タブのフォーカスが変更された場合や、マウスが期待通りにタブを通過した場合にも発生します。問題は、グラフィックの生成に時間がかかるため、数秒かかることです。この遅れは避けられず、私はそれを受け入れます。あなたはGUIシステムがそれをしなければならないので、多くのペイントイベントを取得します。通常これは問題ありませんが、処理の遅れに伴い、guiは10秒間に数回停止/点滅/更新を行います。
私はこれをGUIのどこかの "REFRESH" JButtonから手動でrepaint()を呼び出すだけで済むと思っていました。しかし、あなたがタブを強くすると、私は自動塗り替えをオフにすることはできません。 のみボタンを押してコンポーネントをペイントしますが、自動的にはペイントしませんか?
はい、長時間実行されているプロセスです。カスタムハードウェアデバイスからデータをゆっくりと引き出しています。これが私の目の前にあるので、これは明らかに進む方法です。 –
myDrawImage/SwingWorkerコードはどこにありますか?それは私の "リフレッシュ" jButtonの中に入っていますか?それはjTabbedPanelコンポーネントの一部ではありませんか? –
@PaulUszak:必要な場所に移動します。 –