Java99-1 (Java99: Архитектура и интерфейсы)

2016-07-31СтудИзба

Описание файла

Документ из архива "Java99: Архитектура и интерфейсы", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "Java99-1"

Текст из документа "Java99-1"

Java: архитектура и интерфейсы

Многим наверняка уже известно, что язык Java был разработан фирмой Sun, как платформенно-независимый, переносимый, объектно-ориентированный язык для Internet и Intranet. Я не вижу особого смысла перечислять преимущества языка, его отличия от C++ - это уже описано в десятках книг и сотнях публикаций, как за рубежом, так и в нашей стране. Здесь мы остановимся на том, что представляет собой платформа Java сегодня, из каких компонентов она состоит и какие средства, доступны для разработчиков. Таким образом, по завершении данного цикла вы должны будете получить достаточно четкое представление о том, что предлагает фирма Sun, какими средствами разработки можно пользоваться, какие существуют компоненты и средства для их создания и как с помощью Java можно создавать корпоративные решения.

Технология Java

Технология Java обеспечивает разработчиков основой для создания решений, при разработке которых не нужно задумываться об операционной системе и аппаратной платформе, на которых эти решения будут функционировать. Часто используемое выражение "Написано однажды – работает везде" лучшим образом характеризует основное назначение этой технологии. Независимость от платформы достигается за счет того, что уникальные характеристики каждой из поддерживаемых Java 2 платформ, реализованы в виде оболочки, называемой Java Runtime Environment (JRE). Во время создания приложения разработчик пишет код на языке Java так, как если бы в мире была бы всего одна программно/аппаратная платформа. Компилятор языка Java преобразует код в последовательность байт-кодов, которая будет выполняться на одной из платформ в рамках JRE.

Java Runtime Environment содержит специальные средства проверки кода, обеспечивающие надежность и защищенность программ, загрузчик классов, который динамически загружает классы в процессе выполнения и виртуальную машину Java (Java VM), которая выполняет последовательность байт-кодов, взаимодействую с конкретной операционной системой. Такой подходт освобождает разработчика от необходимости обращать внимания на специфику какой-то конкретной операционной системы и позволяет внедрять Java-приложения на более чем одной платформе. Компоненты JavaRuntime Environment показаны на следующей диаграмме.

То, что язык Java за короткое время стал одним из самых популярных коммерческих объектно-ориентированных языков программирования, помогает распространению технологии Java и подтверждается тем, что в настоящее время этот язык использует около 1 млн. разработчиков (80% из них создает кросс-платформенные приложения), продукты для Java выпускают сотни фирм, а число копий JDK, загруженных с сайта фирмы Sun, превысило 2.5 млн.

Платформа Java 2

Платформа Java 2 (Java Development Kit 1.2), объявленная фирмой Sun в декабре 1998 года, представляет собой физическую реализацию технологии Java. Собственно говоря, она заключена в небольшом по объему файле и состоит из следующих основных компонентов:

  • Средства разработки на Java – редактор, компилятор, отладчик и средство для документации Java API

  • Богатый набор Java-библиотек и базовых классов (foundation classes), которые используются для создания графических интерфейсов, доступа к базам данных, реализации сетевых функций, разработки приложений, работающих с несколькими языками и т.п.

  • Java 2 Runtime Environment – средство для динамической загрузки Java-классов, их проверки и выполнения Java-байт-кода.

Архитектура платформы Java 2 показана на следующей диаграмме.

Изначально, Sun выпустила Java 2 Runtime Environment для следующих платформ: Solaris, Windows NT Server 4.0 и Windows 95/98. В ближайшие месяцы поставщики других платформ выпустят соответствующие JRE. Таким образом, Java 2 будет реализована на следующих платформах:

AIX

Digital UNIX

HP-UX

IRIX

Linux

Mac OS

NetWare

OpenServer

OpenVMS

OS/2

OS/390

RISC-OS

Solaris

Windows 95

Windows 98

Windows NT

Windows NT-Alpha (DEC)

UnixWare

Java 2 в деталях

Давайте рассмотрим состав Java 2 более подробно. Я выделил три основных компонента - средства разработки на Java, набор Java-библиотек и базовых классов и Java 2 Runtime Environment.

Средства разработки на Java

В состав JDK 1.2 входит большое число утилит, которые можно подразделить на несколько категорий:

  • Базовые утилиты

  • RMI-утилиты

  • Средства для локализации приложений

  • Средства для защиты приложений

  • IDL-утилиты

Базовые утилиты

Утилиты, относящиеся к этой категории, служат основой Java Development Kit. Они используются для компиляции и отладки создаваемых Java-приложений. К базовым утилитам относятся:

javac

Компилятор языка Java

java

Загрузчик Java-приложений. Используется и в стадии разработки, и в стадии внедрения приложений

javadoc

Генератор документации для API

appletviewer

Утилита для запуска и отладки приложений без использования web-браузера

jar

Утилита для управления Java Archive (JAR)-файлами

jdb

Отладчик Java-приложений.

javah

Генератор заголовочных файлов и заголушек для языка C 

javap

Дизассемблер Java-классов

extcheck

Утилита для обнаружения конфликов между JAR-файлами

RMI-утилиты

Утилиты, относящиеся к этой категории, используются для создания приложений, взаимодействующих между собой по Internet или другим типам сетей. К таким утилитам относятся:
 

rmic

Утилита для генерации заглушек и скелетов для удаленных объектов

rmiregistry

Утилита для регистрации удаленных объектов

rmid

Средство системной активации RMI

serialver

Возвращает serialVersionUID.для данного класса

Средства для локализации приложений

К средствам для локализации приложений относится утилита native2ascii, выполняющая преобразование текста в Unicode Latin-1.

Средства для защиты приложений

Утилиты, относящиеся к этой категории, используются для задания уровней защиты и создания приложений, который работают на удаленных узлах. К таким утилитам относятся:

keytool

Средство для управления сертификатами

jarsigner

Утилита для генерации и проверки цифровых подписей в JAR-файлах

policytool

Графическое средство для управления файлами доступа

IDL-утилиты

Утилиты, относящиеся к этой категории, используются при создании приложений, использующих CORBA для доступа к базам данных. К таким утилитам относятся:
 

tnameserv

Обеспечивает доступ к сервисам имен (naming service)

Idltojava

Создает java-файлы для интерфейсов OMG IDL и позволяет приложениям, написанным на языке Java, использовать функциональность CORBA 

Набор Java-библиотек и базовых классов

Ядром Java 2 является библиотека классов Java Foundation Classes (JFC) версии 1.1, предназначенная для создания графических интерфейсов Java-приложений. В ее состав входят собственно библиотека JFC версии 1.1 (которая была доступна для JDK 1.1 с февраля прошлого года) и следующие интерфейсы:

  • Abstract Windowing Toolkit (AWT)

  • Swing

  • Java 2D

  • Drag and Drop

  • Accessibility

Архитектура Java Foundation Classes показана на следующей диаграмме.

Abstract Windowing Toolkit позволяет создавать программы с графическими интерфейсами, независящими от конкретной платформы. Более того, программный интерфейс AWT намного проще и понятнее программных интерфейсов Windows, Motif или OS/2. В JDK 1.2 было добавлено много новых классов и интерфейсов, включая поддержку функций рисования, вывода на принтер, обработки изображений и поддержки Drag and Drop и Java 2D.

 Многие из этих новых компонентов можно найти в галерее по адресу: http://java.sun.com/products/jfc/swingdoc-current/comp_gal.html. Также, можно посмотреть программу SwingSet, чтобы увидеть компоненты Swing в действии.

Компоненты Swing являются 100% Java-компонентами. Это означает, что они не зависят от конкретных реализаций интерфейсных элементов на той или иной платформе. Это также означает, что эти компоненты доступны на всех платформах, где есть поддержка Java 2. Компоненты Swing реализованы как расширение AWT, но не используют компонентов AWT. На самом деле, многие традиционные компоненты AWT – кнопки, списки, диалоговые панели, были переделаны в компоненты Swing Благодаря этому, компоненты AWT стали более доступными на различных платформах и теперь предоставляют дополнительные возможности, отсутствующие в некоторых графических средах. На следующей диаграмме показано взаимодействие Swing и AWT.

Одно из наиболее интересных свойств библиотеки Swing – это возможность изменения внешнего вида компонентов и интерфейсов - Pluggable Look and Feel (PL&F). Архитектура PL&F позволяет настраивать внешний вид и поведение как одного компонента, так и группы компонентов. Также в состав Swing входит ряд предопределенных настроек - Metal L&F, Motif L&F, Windows L&F. Существуют настройки по умолчанию для Macintosh и других платформ.

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

Компонент

Описание

Box

Контейнер общего назначения для организации вложенных компонентов используя модель BoxLayout.

Japplet

Подкласс класса Applet содержащий JRootPane для того, чтобы добавить к приложению различные интерфейсные элементы типа меню

Jbutton

Кнопка, которая может содержать либо текст, либо графическое изображение, либо и то и другое

JcheckBox

Кнопка с независимой фиксацией

JcheckBoxMenuItem

Кнопка с независимой фиксацией для использования в меню

JcolorChooser

Компонент для выбора цвета в одной из цветовых схем. Используется совместно с javax.swing.colorchooser 

JcomboBox

Комбинированый список – строка ввода и выпадающий список. Пользователь может вводить текст или выбирать элемент из списка.

Jcomponent

Корневой элемент иерархии библиотеки компонентов Swing. Добавляет специфические свойства типа подсказок и поддержки двойной буферизации

JdesktopPane

Контейнер для компонентов JInternalFrame имитирующий работу desktop в одном окне. Поддерживает многооконный интерфейс (MDI) 

Jdialog

Контейнер для отображения диалоговых панелей

JeditorPane

Текстовый редактор с богатыми возможностяим, управление свойствами которого возможно через объект EditorKit. По умолчанию может отобрать и редактировать текст в формате HTML и RTF

JfileChooser

Компонент для выбора файла или каталога. Поддерживается фильтрация и возможность предварительного просмотра содержимого файла. Используется совместно с javax.swing.filechooser

Jframe

Контейнер для окон верхнего уровня

JinternalFrame

Контейнер для вложенных окон. Схож с JFrame и отображает заголовок окна. В то же время не является независимым окном и отображается внутри родительского контейнера. Часто используется вместе с JDesktopPane.

Jlabel

Компонент для отображения текста, графического изображения или того и другого

JlayeredPane

Контейнер, позволяющий дочерним объектам перекрывать друг друга. Управляет порядком наложения дочерних объектов двуг на друга

Jlist

Компонент для отображения списка с возможностью выбора. Элементами списка могут быть строки, графические изображения или другие объекты

Jmenu

Выпадающее меню в JMenuBar или подменю внутри другого меню

JmenuBar

Компонент, отображающий набор выпадающих меню.

JmenuItem

Один элемент меню

JoptionPane

Компонент, использующийся для отображения простых диалоговых панелей внутри контейнера JDialog. Задает набор статических методов для стандартных диалоговых панелей

Jpanel

Контейнер для группировки компонентов в соответствующем LayoutManager.

JpasswordField

Поле ввода данных, в котором вводимый текст не отображается

JpopupMenu

Окно, в котором отображается всплывающее меню. Используется JMenu или для создания отдельных всплывающих меню

JprogressBar

Компонент, который показывает процесс выполнения длительной операции

JradioButton

Кнопка с зависимой фиксацией

JradioButtonMenuItem

Кнопка с зависимой фиксацией для использования в меню

JrootPane

Комплексный контейнер, используемый JApplet, JDialog, JFrame и JInternalFrame. 

JScrollBar

Горизонтальная или вертикальная полоса прокрутки

JScrollPane

Контейнер, позволяющий дочерним компонентам прокручиваться вертикально или горизонтально. Обеспечивает поддержку фиксированных областей. 

Jseparator

Компонент для отрисовки горизонтальных и вертикальных разделителей. 

Jslider

Компонент для наглядного ввода цифровых значений

JSplitPane

Контейнер, в котором отображаются два дочерних объекта, размер которых можно изменять

JtabbedPane

Контейнер, реализующий панель с закладками

Jtable

Компонент для отображения таблиц с возможностью редактирования их содержимого. Может отображать как строчные данные, так и любой другой тип данных. Обычно используется совместно с javax.swing.table

JtextArea

Компонент для отображения и редактирования многострочного текста. Основан на компоненте JTextComponent.

JtextComponent

Компонент для реализации компонентов для отображения и редактирования текста. Является частью javax.swing.text

JtextField

Компонент для отображения, ввода и редактирования одной строки текста. Основан на компоненте JTextComponent.

JtextPane

Подкласс JEditorPane для отображения и редактирования отформатированного текста, который не является текстом в формате HTML или RTF

JtoggleButton

Родительский компонент для JCheckBox и JRadioButton.

JtoolBar

Компонент для отображения панели инструментов

JtoolTip

Окно для отображения подсказок или другой пояснительной инфомации

Jtree

Компонент для отображения древрвидной структуры данных. Помимо строчных данных может отображать любые другие. Используется совместно с javax.swing.tree

Jviewport

Контейнер для отображения какой-лиюбо части дочернего объекта. Обычно используется совместно с JScrollPane.

Jwindow

Окно, но без заголовка, полос прокрутки и других элементов. 

С помощью Java 2D можно разрабатывать графические приложения. Этот программный интерфейс обеспечивает поддержку двумерной графики, обработку графических изображений, рендеринг, управление цветами и работу с устройствами печати. Интерфейс Java 2D состоит из модели, которая поддерживает отрисовку линий, графических изображений, преобразования цветов, составление графики. Модель является аппаратно-независимой. Интерфейс Java 2D реализован в пакетах java.awt и java.awt.image.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5139
Авторов
на СтудИзбе
441
Средний доход
с одного платного файла
Обучение Подробнее