События в Java обрабатываются в отдельном потоке, или я должен сделать это сам? - PullRequest
1 голос
/ 01 июля 2010

Я довольно новичок в программировании .... поэтому я делаю музыкальный проигрыватель, которому нужны некоторые функции Мне нужно обработать одно событие одновременно в 2 классах. Например ...

Проигрыватель воспроизводит музыку в своем собственном потоке, когда эта музыка завершена, он запускает musicFinished (MusicEvent), переходит в класс Playlist и запрашивает ForAnotherMusicToPlay (), затем снова начинает воспроизведение. Когда запускается musicFinished, все это происходит одновременно: -A Logger, который прослушивает событие иди записать его в файл журнала. (Мне нужен другой поток здесь или событие уже обработано в другом потоке?) GUI отображает, что музыка закончилась, обновляет метку и устанавливает часы на 0. (Для этого я бы использовал SwingUtilities.invokeLater, верно ??)

Так что же является лучшим решением для этого случая? Делать свое собственное событие? Как насчет темы? я должен сделать тогда сам ?? Я уже гуглил это и обнаружил, что actionPerformed выполняется в EDT (Потоке диспетчеризации событий), но я не знаю для других событий. они все ??? Спасибо

1 Ответ

0 голосов
/ 01 июля 2010

Все обработчики событий Swing вызываются из EDT.Кроме того, SwingUtilities.invokeLater также запустит ваш код в EDT, он просто будет ждать вызова всех ожидающих обработчиков событий.Я не уверен, что это то, что вы хотите - если нет, вам нужно запустить собственную тему.

...