Ответ 1
Эти классы являются общими точками расширения для проектов Java UI. Во-первых, поймите, что они не обязательно связаны друг с другом напрямую, поэтому попытка найти взаимосвязь между ними может быть контрпродуктивной.
JApplet. Базовый класс, который позволяет писать код, который будет работать в контексте браузера, например, для интерактивной веб-страницы. Это круто, и все, но оно приносит ограничения, которые являются ценой за то, что он играет хорошо в реальном мире. Обычно JApplet используется, когда вы хотите иметь собственный пользовательский интерфейс на веб-странице. Я всегда задавался вопросом, почему люди не используют апплеты для хранения состояния для сеанса, поэтому никакая база данных или файлы cookie не нужны.
JComponent - базовый класс для объектов, которые намерены взаимодействовать с Swing.
JFrame. Используется для представления материала, которое должно иметь окно. Это включает в себя границы (resizeable y/n?), Заголовок (имя приложения или другое сообщение), элементы управления (минимизация/максимизация разрешено?) И обработчики событий для различных системных событий, таких как "закрытие окна" (разрешение приложения еще не завершено?).
JPanel - общий класс, используемый для сбора других элементов. Это более важно при работе с визуальным макетом или одним из предоставленных менеджеров компоновки, например. gridbaglayout и т.д. Например, у вас есть текстовое поле, которое больше, чем область, которую вы зарезервировали. Поместите текстовое поле в панель прокрутки и поместите эту панель в JPanel. Затем, когда вы поместите JPanel, он будет более управляемым с точки зрения макета.