Привязка JGoodies не позволит мне перекрасить мой JComponent - PullRequest
1 голос
/ 29 марта 2012

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

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

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

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

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

1 Ответ

0 голосов
/ 18 апреля 2012

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

...