Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

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

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

Ответ 3

Вам может показаться полезным найти классы в 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 - это просто панель, которая входит в окно. Если это имеет смысл.