Разница между JPanel, JFrame, JComponent и JApplet

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

43
задан Little Helper 24 March 2018 в 18:39
поделиться

3 ответа

Эти классы являются общими точками расширения для проектов пользовательского интерфейса Java. Во-первых, поймите, что они не обязательно имеют прямое отношение друг к другу, поэтому попытки найти между ними отношения могут быть контрпродуктивными.

JApplet - базовый класс, позволяющий писать код, который будет работать в контексте браузера, как интерактивная веб-страница. Это круто, но влечет за собой ограничения, которые расплачиваются за хорошую игру в реальном мире. Обычно JApplet используется, когда вы хотите иметь собственный пользовательский интерфейс на веб-странице. Мне всегда было интересно, почему люди не используют апплеты для хранения состояния сеанса, поэтому не нужны ни база данных, ни файлы cookie.

JComponent - базовый класс для объектов, которые намереваются взаимодействовать с Swing.

JFrame - Используется для представления содержимого окна. Это включает в себя границы (изменение размера да / нет?), Заголовок (имя приложения или другое сообщение), элементы управления (минимизировать / развернуть разрешено?) И обработчики событий для различных системных событий, таких как «закрытие окна» (разрешить приложению выйти еще?).

JPanel - Общий класс, используемый для объединения других элементов. Это более важно при работе с визуальным макетом или одним из предоставленных менеджеров по макету, например. gridbaglayout и т. д. Например, у вас есть текстовое поле, размер которого превышает размер зарезервированной вами области. Поместите текстовое поле в область прокрутки и поместите эту панель в JPanel. Затем, когда вы разместите JPanel, она станет более управляемой с точки зрения макета.

41
ответ дан 26 November 2019 в 23:00
поделиться

Вы можете найти полезным поиск классов в oracle. Например:

http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/JFrame.html

Там вы увидите, что JFrame расширяет JComponent и JContainer.

JComponent - это базовый объект, который может быть нарисован, JContainer расширяет его, чтобы вы могли добавлять к нему компоненты. JPanel и JFrame оба расширяют JComponent, так как вы можете добавлять к ним компоненты. JFrame предоставляет окно, в то время как JPanel - это просто панель, которая находится внутри окна. Если это имеет смысл.

5
ответ дан 26 November 2019 в 23:00
поделиться

JFrame и JApplet - это контейнеры верхнего уровня. Если вы хотите создать настольное приложение, вы будете использовать JFrame, а если вы планируете разместить свое приложение в браузере, вы будете использовать JApplet.

JComponent - это абстрактный класс для всех компонентов Swing, и вы можете использовать его в качестве базового класса для вашего нового компонента. JPanel - это простой компонент, который можно использовать практически для чего угодно.

Поскольку это развлекательный проект, самый простой способ - поработать с JPanel, а затем разместить его внутри JFrame или JApplet. В Netbeans есть визуальный дизайнер Swing с простыми примерами.

19
ответ дан 26 November 2019 в 23:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: