1

バインドされたJTextFieldと、JComponentから作成された個別のグラフがあります。グラフをドラッグすると、マーカーが更新され、バインドされたJTextFieldにドラッグ中の座標が表示されます。バインドしているとき、ドラッグが終了するまでグラフは再描画されません。バインディングをオフにすると、ドラッグするとグラフが再描画されます。ドラッグ中にJGoodiesが再描画呼び出しをブロックしている理由がわかりません。なぜこれが起こるのか誰かが知っていますか?

私のコードは次のようになります:

public void dragMarker()
{
    ...some code...
    firePropertyChange("propertyName", oldValue, newValue);
    myJComponent.refresh();
}

JGoodiesで何かが起こっているので、私には理解できません。バインディング呼び出しが完了した後、再描画する必要があります。

また、Swingは複数の呼び出しを折りたたんで、1つの呼び出しに再描画できることを読んでいました。それは私に起こっているのでしょうか?私の塗り直しの呼び出しは、最後に1つの呼び出しに折りたたまれていますか?

4

1 に答える 1

0

私の答えは、完全に満足できるものではありませんが、firePropertyChangeListeners を実行し、JGoodies にバインドされたコードを更新する .3 秒の速度でスケジュールされたエグゼキューターを使用して、swingworker スレッドを起動することです。これは、更新が不安定であることを意味しますが、少なくとも描画コードはほぼ完全にスムーズです。この問題が発生することに頭がおかしくなりました。これが精一杯でした…

于 2012-04-18T16:24:26.673 に答える