2012-06-26 1 views
1

У меня есть BufferedImage, который установлен в JLabel, который, в свою очередь, является частью JPanel. Одним нажатием кнопки я рисую несколько строк на BufferedImage, который впоследствии обновляется на панели. Раньше я рисовал каждую линию один за другим, что было в порядке, но для моих целей было неэффективно. Чтобы повысить эффективность, я разделил координаты BufferedImage на 4 части и нарисовал линии на каждой части с помощью потоков. Теперь, после завершения выполнения, какая-то случайная часть изображения не имеет линий. Почему это? Является ли рисование с использованием Graphics2D небезопасным?Линии рисования на BufferedImage в Java с помощью потоков

+3

Вопрос ---> В какой-то случайной части изображения нет линий. Почему это? Является ли рисование с использованием Graphics2D небезобезопасным? ', Answer --->' для лучшей помощи, скорее всего, опубликуйте '[SSCCE] (http://sscce.org/) – mKorbel

ответ

3

Используется ли с использованием Graphics2D небезопасный поток?

Да, Swing (и рисунок в нем) определенно не является потокобезопасным, и ошибки рендеринга, которые вы испытываете, определенно из-за этого.

Пожалуйста, обратитесь к следующей учебник для более подробной информации: http://docs.oracle.com/javase/tutorial/uiswing/concurrency/dispatch.html

По mKorbel комментарий, пожалуйста, добавьте SSCCE получить более конкретные советы.

Смежные вопросы