Я собираюсь написать анимацию, в которой символ на JPanel
перемещается влево/вправо, когда пользователь нажимает (и удерживает) соответствующие клавиши.Правильный подход параллелизма к анимации качания?
Теперь, поскольку я новичок в concurrency Я хочу спросить: должен ли код обрабатывать анимацию (а именно метод, который будет перемещать и перерисовывать символ до тех пор, пока ключ удерживается) исполняться на рабочем потоке или поток отправки событий?
Я читал учебники по параллельности в swing
, и кажется, что материал, который изменяет компоненты (в данном случае это картина JPanel
) должно быть на обработке потоков события, но с другой стороны, что бы заморозить все другие события до тех пор, пока ключ будет удерживаться правильно?
Например, пользователь не сможет приостановить игру, пока он держит левую клавишу, если я это правильно понимаю. Итак, какой подход правильный и почему? Или, может быть, существует совершенно другой способ сделать такую анимацию?
Спасибо заранее!
, если вы собираетесь использовать неявно, простой подход к потоку поможет, потому что нет никаких конфликтов между базовым потоком и ваша нить, как [это] (http://arashmd.blogspot.com/2013/07/java-thread-example.html#lc) –