Привязка JGoodies не позволит мне перекрасить мой JComponent

У меня есть связанный JTextField и отдельный график, сделанный из JComponent. Когда я перетаскиваю свой график, маркер должен обновляться, а связанный JTextField должен показывать свои координаты при перетаскивании. Когда я привязываюсь, график не будет перерисовываться, пока я не закончу перетаскивание. Когда я отключаю привязку, мой график перерисовывается как перетаскивание. Я не понимаю, почему JGoodies блокирует вызовы перерисовки во время перетаскивания. Кто-нибудь знает, почему это могло произойти?

Мой код выглядит так:

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

Что-то происходит в JGoodies, чего я не могу понять. Он должен перерисовываться после завершения вызова привязки.

Кроме того, я только что читал, что Swing может свернуть несколько вызовов для перерисовки в один вызов. Может ли это происходить со мной? Мои вызовы перерисовки просто сворачиваются в один вызов в конце?


person smuggledPancakes    schedule 29.03.2012    source источник


Ответы (1)


Мой ответ, которым я не нахожу полного удовлетворения, заключается в том, что я запускаю поток Swingworker с запланированным исполнителем со скоростью 0,3 секунды, который запускает firePropertyChangeListeners и обновляет связанный код JGoodies. Это означает, что обновления прерывистые, но, по крайней мере, код отрисовки почти идеально гладкий. Меня смущает, что эта проблема возникает. Это было лучшее, что я мог сделать...

person smuggledPancakes    schedule 18.04.2012