Файл: Обзор языков программирования высокого уровня ( Java ).pdf
Добавлен: 04.04.2023
Просмотров: 280
Скачиваний: 3
Актуальной версией считается Delphi XE5, хотя она поддерживает работу в режиме «канонических» учебных образцов (консольное приложение с текстовым либо файловым вводом/выводом).
Delphi XE5 имеет интегрированный набор визуальных 3D-компонентов. Программирование на самом деле становится интерактивным. Это не «мучительный набор слова программы», а живое взаимодействие со средой исследования [4].
Delphi дает возможность программисту разрабатывать программы, которые могут выводить графику: схемы, чертежи, картинки.
Программа выводит графику на плоскость объекта (формы либо компонента Image). Плоскости объекта соответствует свойство canvas. Для того чтобы вывести на плоскость объекта графический элемент (прямую линию, окружность, прямоугольник и т. д.), нужно применить к свойству canvas данного объекта соответствующий способ. К примеру, инструкция Form1.Canvas.Rectangle (10,10,100,100) вычерчивает в окне программы прямоугольник.
К тому же, свойство canvas — это объект вида TCanvas. Способы данного вида гарантируют вывод графических примитивов (точек, линий, окружностей, прямоугольников и т. д.), а характеристики позволяют установить свойства выводимых графических примитивов: цвет, толщину и стиль линий; расцветка и вид заполнения областей; свойства шрифта при выводе текстовой информации [6].
Способы вывода графических примитивов рассматривают свойство Canvas как некий абстрактный холст, на котором они могут рисовать (canvas переводится как «плоскость», «холст для рисования»). Холст состоит из отдельных точек — пикселов.
Положение пиксела характеризуется его горизонтальной (X) и вертикальной (Y) координатами. Левый верхний пиксел имеет координаты (0, ). Координаты возрастают сверху вниз и слева направо (рисунок 1). Значения координат правой нижней точки холста находятся в зависимости от размера холста.
Рисунок 1 – Холст
Размер холста можно получить, обратившись к свойствам Height и width области картинки (image) либо к свойствам формы: ClientHeight и Clientwidth.
Художник в собственной работе использует карандаши и кисти. Способы, обеспечивающие вычерчивание на плоскости холста графических примитивов, также используют карандаш и кисть. Карандаш используется для вычерчивания линий и контуров, а кисть — для закрашивания областей, ограниченных контурами.
Карандашу и кисти, применяемым для вывода графики на холсте, отвечают характеристики Реn (карандаш) и Brush (кисть), которые представляют собой объекты вида Tреn и TBrush, соответственно. Значения параметров данных объектов характеризуют вид выводимых графических элементов [15].
Для вывода текста на поверхность графического объекта используется метод TextOut. Инструкция вызова метода TextOut в общем виде выглядит так:
Объект.Canvas.TextOut(x, у, Текст)
где:
- объект — имя объекта, на поверхность которого выводится текст;
- х, у — координаты точки графической поверхности, от которой производится вывод текста (рисунок 2);
- Текст — переменная либо константа символьного вида, значение которой описывает выводимый способом текст.
Рисунок 2 - Координаты области вывода текста
Шрифт, который употребляется для вывода текста, определяется значением свойства Font соответствующего объекта canvas. Свойство Font представляет собой объект вида TFont.
Картина, чертеж, схема и т.д. могут рассматриваться как совокупность графических примитивов: точек, линий, окружностей, дуг и другие. Таким образом, для того чтобы на дисплее возникла нужная картинка, программа обязана обеспечить вычерчивание (вывод) графических примитивов, основополагающих эту картинку.
Вычерчивание графических примитивов на плоскости компонента (формы либо области вывода картинки) осуществляется использованием соответствующих способов к свойству Canvas этого компонента.
Более просто вывести картинку, которая располагается в файле с расширением bmp, jpg либо ico, возможно с помощью компонента image, значок которого располагается на вкладке Additional палитры (рисунок 3).
Рисунок 4 - Вкладка Additional. Значок компонента Image
Иллюстрацию, которая станет выведена в поле компонента image, можно задать как в период разработки формы приложения, так и в период работы программы [16].
В период разработки формы иллюстрация задается установкой значения характеристики picture методом выбора файла иллюстрации в шаблонном диалоговом окне, которое появляется в результате щелчка на командной кнопке Load окна Picture Editor (рисунок 5).
Рисунок 5 – Окно Picture Editor
Чтобы запустить Image Editor, необходимо в окне Object Inspector выбрать свойство Picture и щелкнуть на кнопке с тремя точками.В случае если размер картинки больше объема компонента, то свойству strech необходимо присвоить значение True и установить значения параметров width и Height пропорционально настоящим размерам иллюстрации. Чтобы вывести иллюстрацию в поле компонента image в период работы программы, необходимо применить способ LoadFromFile к свойству Picture, указав в качестве параметра название файла иллюстрации. Например, инструкция
Form1.Image1.Picture.LoadFromFile('e:\temp\bart.bmp')
загружает иллюстрацию из файла bart.bmp и выводит ее в поле вывода иллюстрации (imagel).
Способ LoadFromFile разрешает отображать иллюстрации разных графических форматов: BMP, WMF, JPEG (файлы с расширением jpg).
Следующая программа использует компонент image для просмотра иллюстраций, которые находятся в обозначенном пользователем каталоге. Диалоговое окно программы приведено на рисунке 6 [5].
Рисунок 6 - Слайд-проектор
2.2. Возможности языка программирования Java
Для разработки прикладного программного обеспечения на языке Java, а точнее графического интерфейса приложений, традиционно употребляются пакеты AWT и Swing.
AWT (для доступа загружается пакет java.awt) имеет набор классов, позволяющих выполнять графические операции и создавать оконные составляющие управления, аналогично тому, как это делается в VBA и Delphi;
Swing (для доступа загружается пакет javax.swing) имеет новые классы, в основном подобные AWT. К именам классов добавляется J (JButton, JLabel и другие) [3].
Сейчас главные классы для возведения визуальных интерфейсов находятся в пакете Swing. Из пакета AWT используются классы для обработки сообщений.
- Разработка Swing предоставляет механизмы для управления следующими качествами представления:
- Клавиатура (Swing предоставляет метод перехвата пользовательского ввода);
- Цвета (Swing предоставляет метод менять расцветки, которые вы видите на дисплее);
- Текстовое поле для ввода (Swing предоставляет текстовые составляющие для обработки всех ежедневных задач) [19].
JComponent
Базовым классом всей библиотеки визуальных компонентов Swing считается JComponent. Это суперкласс других визуальных компонентов. Он считается абстрактным классом, поэтому в реальности нельзя сделать JComponent, хотя он имеет сотни функций, которые любой компонент Swing применяет как результат иерархии классов. Класс JComponent гарантирует инфраструктуру окрашивания для всех компонент, он знает, как обрабатывать все нажатия кнопок на клавиатуре, его подклассы, следовательно, обязаны лишь прослушивать конкретные кнопки. Класс JComponent кроме того имеет способ add(), который разрешает прибавить иные объекты класса JComponent, так можно прибавить любой Swing-компонент к любому иному для создания вложенных компонентов (к примеру, JPanel, содержащую JButton, либо даже более необычные комбинации, к примеру JMenu, содержащее JButton).
JLabel
Самым обычным и вмести с этим главным визуальным компонентом в библиотеке Swing считается JLabel, либо «метка». К методам данного класса относится установка текста, изображения, выравнивания и прочих компонентов
JButton
Главным активным компонентом в Swing считается Jbutton.
Способы, применяемые для конфигурации параметров JButton, подобны способам JLabel. Они управляют текстом, изображениями и ориентацией
JFrame
КлассJFrame считается контейнером, позволяющим добавлять к для себя иные составляющие для их организации и предоставления пользователю.
JFrame выступает в качестве моста между независящими от определенной операционной системы Swing-частями и настоящей операционной системой, на которой они трудятся. JFrame регистрируется как окно и таким образом получает многие свойств окошка операционной системы: минимизация/максимизация, изменение размеров и движение [14].
При построении визуальных приложений в Java невозможно просто случайно расположить их на дисплее и ждать от их незамедлительной работы. Составляющие нужно расположить в конкретные места, откликаться на взаимодействие с ими, обновлять их на базе данного взаимодействия и наполнять данными. Для действенной работы с зрительными составляющими нужна установка следующих трех архитектурных основополагающих Swing.
1. Схемы (layout). Swing содержит огромное количество схем, которые представляют собой классы, управляющие размещением компонентов в приложении и тем, что обязано случится с ними при изменении объемов окна приложения либо при удалении либо добавлении компонентов.
2. События (event). Программа обязана обращать внимание на нажатия клавиш, нажатия клавиши мыши и на все другое, что пользователь может сделать.
3. Модели (model). Для наиболее сложных компонентов (перечни, таблицы, деревья) и даже для некоторых более простых, например, JComboBox, модели – это самый действенный метод работы с данными. Они убирают огромную часть работы по обработке данных из самого компонента и дают оболочку для совместных объектных классов данных (к примеру, Vector и ArrayList) [2].
Почти все из поверхностей, на которых отображается графика, — к примеру, экраны мониторов либо листы бумаги — считаются плоскими. Программирование 3D графики разрешает воссоздавать близкие к реальности модели большого мира на поверхностях в двухмерном облике.
3D графика имеет достоинства в том смысле, что фактически все, что видно вокруг, можно моделировать — цифровым образом представить форму и объемы, а также показать — нарисовать на экране компьютера [7].
В настоящее время присутствует огромное количество приложений, позволяющих трудиться с трехмерной графикой — от игр и медицинского оборудования до трехмерных игр и хранителей экранов. Заслуги в сфере компьютерного аппаратного обеспечения дали почву значительному подъему энтузиазма к трехмерной графике. Успех в разработке высокопроизводительного аппаратного обеспечения содействовали исследованиям высокоэффективных интерфейсов прикладного программирования 3D графики — от сделанного в 70-х годах API CORE от Siggraph и создания в 80-х годах прошлого века OpenGL фирмой SGI, до нынешних средств программирования 3d графики, включая Microsoft DirectSD и Java3D.
3D графика требует графических алгоритмов, использующих непростой математический аппарат. Java 3D дает разработчикам верные и развитые возможности для работы с трехмерной графикой, в этот момент оставляя за сценой арифметику, нужную для реализации графических алгоритмов. Java 3D — это высокоуровневый API программирования 3D графики. Java 3D управляет всеми нужными низкоуровневыми операциями для работы с графикой, поэтому разработчики имеют все шансы создавать трудоемкие трехмерные сцены, не задумываясь о применяемом аппаратном обеспечении. Аналогично Java, код Java 3D, будучи прописанным, однажды, действует везде. Приложения Java 3D будут работать подобным образом на разных графических платформах [11].
Sun Microsystems разрабатывала Java 3D API, имея в виду четыре главные цели: переносимость приложений, автономия от аппаратного обеспечения, масштабирование производительности и способность работать с трехмерной графикой через сеть. Упрощение трудоемких графических операций играло главную роль при разработке Java 3D API.
Вот некие области и сферы внедрения API Java 3D:
- визуализация трехмерных данных;
- взаимодействующие между собой приложения;
- игры (в особенности сетевые с несколькими соучастниками);
- деловая графика;
- интерактивные обучающие системы;
- моделирование и визуализация молекулярных структур;
- разработка трехмерных Web-приложений;
- разработка трехмерных графических пользовательских интерфейсов.
Java 3D предлагает несколько многофункциональных способностей, которые имеют все шансы использоваться для исследования трехмерных графических приложений:
- Поведения. Java 3D поддерживает огромное количество поведений, включая анимацию и движение, обнаружение столкновений (выявление, когда два объекта сталкиваются) и морфинг (трансформацию одного изображения в иное изображение).
- Вуалирование. Java 3D поддерживает вуалирование содержимого, собственно ограничивает возможность просмотра конкретных объектов в сцене. К примеру, вуалирование помогает сделать близкую к реальности модель дождя либо урагана в игре.
- Геометрия. Java 3D имеет интегрированные трехмерные графические примитивы для сотворения геометрических фигур. В Java 3D можно показывать сцены, сделанные в других приложениях 3D графики, к примеру, SDStudio Мах, VRML и LightwaveSD.
- Освещение. Java 3D разрешает освещать объекты трехмерной сцены. Java 3D поддерживает разные виды освещения и управления его расцветкой, направлением и интенсивностью.
- Звук. Оригинальной необыкновенностью Java 3D является поддержка SD-звука.
- Текстуры. Java 3D поддерживает наложение текстур на плоскости трехмерных фигур [14].