Апплет — программа, работающая с окном. Поэтому, его архитектура отличается от программ, основанных на консольном вводе/выводе. Имеется несколько ключевых концепций, которые нужно понимать.
Во-первых, апплеты управляются событиями. Апплет походит на набор программ обработки прерываний. Процесс выполняется так: апплет ожидает возникновение некоторого события. AWT уведомляет апплет о событии вызовом обработчика события, который был обеспечен апплетом. Как только это случается, апплет должен выполнить соответствующее действие и затем быстро возвратить управление AWT. Это критический момент. По большей части апплет не должен входить в режим работы, в котором он поддерживает управление длительный период. В тех ситуациях, когда апплет вынужден исполнять повторяющуюся задачу сам по себе (например, отображая прокручивающееся в его окне сообщение), вы должны запустить дополнительный поток выполнения
Во-вторых, пользователь инициализирует взаимодействие с апплетом. "Неоконная" программа, которая нуждается во вводе, выдает подсказку пользователю и затем вызывает некоторый метод ввода, такой как readLine(). В апплете пользователь взаимодействует с апплетом, как и когда он этого захочет. Эти взаимодействия посылаются апплету как события, на которые апплет должен ответить. Например, когда пользователь щелкает мышью внутри окна апплета, генеририруется событие "щелчок мышью". Если пользователь нажимает клавишу в то время, когда окно апплета имеет фокус ввода, генерируется событие "нажатие клавиши". Апплеты могут содержать различные элементы управления, такие как кнопки и переключатели. Когда пользователь взаимодействует с одним из этих элементов управления, также генерируется событие.
В то время как архитектура апплета не столь проста для понимания, как у консольной программы, Java AWT делает ее настолько простой, насколько это возможно.