Пишу многопоточный апплет на java для имитации движения бильярдных шаров на плоскости. В классе Main создаются объекты типа Ball (сами шары), которые являются наследниками Thread, и запускаются. Для шаров генерируются рандомные направление, скорость и цвет. При столкновении со стенкой шары отражаются. Скорость постепенно уменьшается до остановки. Для рисования создаю BufferedImage, в которую рисую шар, а перед каждой следующей перерисовкой очищаю зарисованную область с помощью setComposite(AlphaComposite.Clear).
ПРОБЛЕМЫ:
1) Шары мигают.
2) Не всегда при следующей перерисовке шара, предыдущая перерисовка стирается.
А зачем рисовать из разных потоков?
Это как выстрел себе в ногу в начале забега.
В виду сложного устройства графической подсистемы в целом, крайне не рекомендую рисовать из разных потоков, не только в java.
Вы попадаете в ловушку неопределенностей, порождаемых конкурентным использованием графического контекста.
Чаще всего гафический контекст не потоко-безопасен, между вызовами функций настройки состояния графического конвейера и вызовом метода draw не в коем случае не должны вклиниваться другие потоки, со своими инструкциями.
Кто сможет, простите меня за мою тупость, я действительно не совсем правильно понял условие.
Виртуальный выделенный сервер (VDS) становится отличным выбором
При инициализации проэкта сразу выдает ошибку orghibernate
Пробую сделать recycling view, но столкнулась с такой ошибкой
Хочу при создании столбца по нажатии кнопки из ComboBox выбирать тип данных в столбце, но не могу найти ни свойство, ни методПодскажите, как менять...