2012-06-03 2 views
1

Я делаю приложение Java, которое печатает изображение и позволяет пользователю редактировать его, опираясь на него. В настоящее время моя программа прослушивает перетаскивание мышью, и как только она появляется, изменяется цвет пикселя, в котором находится курсор. Чтобы отобразить изменение, я вызываю paintComponent в конце каждого цикла mouseDragged. Хотя он работает по назначению, изображение трепетает, если я слишком быстро передвигаю мышь.Более эффективный способ редактирования изображений и отображения?

Это потому, что я звоню по телефону paintComponent слишком много раз? Если да, то как я могу сделать свою программу более эффективной?

Я думал просто редактировать изображение только в памяти и отображать изображение каждые 1/30 секунды или около того вместо отображения его после каждого редактирования.

+0

«Я думал ...» Да, это так. Или посмотрите на двойную буферизацию, но вы на правильном пути. – Hassan

+0

Чтобы лучше помочь, опубликуйте [SSCCE] (http://sscce.org/). –

ответ

1

Это потому, что я звоню по телефону paintComponent слишком много раз?

Один раз слишком много. Вместо этого звоните repaint() & позвольте ему запланировать (или проигнорировать) звонок до paintComponent().