Java апплет не загружен что делать. Интеграция апплета в веб-приложение

Скачать и установить java апплет

Для установки и последующей настройки КриптоПро системы «Банк-клиент Онлайн» вам потребуется скачать java апплет для «ВТБ 24». Скачать можно бесплатно на страничке http://www.java.com/ru/ . Этот компонент понадобиться, если вы будите использовать в своей работе такие браузеры, как Mozilla Firefox, Opera, Internet Explorer. Но это не единственные браузеры, которые поддерживает данная система.

Установка java апплет проходит в два этапа:

  1. это установка самой платформы yava SE Runtime Environment;
  2. установка java апплета.

Если java стоит на вашем персональном компьютере, первый этап следует пропустить. Кстати, ПК не попросит вас установить данный компонент. Установка проходит в пять шагов:

  1. нажмите «Загрузить» скрипт;
  2. нажмите «Согласиться и начать загрузку»: файл с расширением.exe для операционной системы Windows;
  3. далее следует «Сохранить» полученный файл и запустить его (щелкнув два клика левой клавишей мышки);
  4. нажмите кнопку «Install»;
  5. после того, как процесс установки завершится, вам останется нажать на кнопку «Close». Это будет означать, что установка завершилась.

Настройка скрипта

Настройка осуществляется через «Пуск» в «Панеле управления». Затем откройте контрольную панель. Вам останется только произвести отключение протоколов: TLS 1.1 и TLS 1.2. Сделать это просто: снимите с них галочки напротив. Аналогичным образом отключаем «Use SSL 2.0 compatible ClientHello format». Все готово.

В этой статье я постараюсь максимально просто и понятно изложить основы программирования на языке Delphi

Java для чайников. Урок 3. Простой апплет.

Наконец то мы подошли к самому главному: программированию на Java для Web, ибо сегодня мы напишем свой первый апплет. Конечно, начнем с самого простого, с "Hello World!". И так, вот текст этого апплета:

import java . applet . Applet ;

import java . awt . Graphics ;

Public class HelloApplet extends Applet {

Public void paint ( Graphics g ) {

G . drawString ( "Hello, world!" , 0 , 50 );

}

}

В данном примере мы подключаем библиотеки Applet - для доступа к классу апплета и Graphics - для использования графических функций. В апплетах мы не можем выводить на экран текст средствами библиотеки System, как мы это делали при написании консольного приложения (см. и ). Поэтому тут мы будем использовать немножко другие методы. В частности, класс Graphics , который предназначен для рисования в области поля апплета. И еще одно отличие от консольного приложения. Тут нет класса с методом main(). Для реализации апплета мы объявляем класс, дочерний от класса Applet:

public class HelloApplet extends Applet

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

g . drawString ( "Hello, world!" , 0 , 50 );

будет рисовать на экране текст "Hello, world!" в точке с координатами 0,50.

И так, компилируем программу. У нас должен появиться файл HelloApplet.class. Теперь тестируем его, создав простейший апплет содержащий HTML- файл:

"HelloApplet.class" Width = 200 Height = 200 >

Апплеты

Первые два примера, представленные в этой книге, - это приложения, написанные на языке Java, т.е самостоятельные программы, аналогичные обычным машинозависимым программам.
С другой стороны, как упоминалось в предыдущей главе, ажиотаж вокруг языка Java был вызван, в основном, его возможностями выполнять апплеты под управлением Web-броузеров.

Мы хотим показать вам, как создать и выполнить апплет в режиме командной строки.

Затем мы загрузим этот апплет в программу для просмотра апплетов (appletviewer), входящую в состав пакета JDK.
В заключение мы отобразим его в Web-броузере.

Перейдите в каталог CoreJavaBook/vlch2/WelcomeApplet, а затем введите
следующие команды.
javac WelcomeApplet. java
appletviewer WelcomeApplet.html

На рис. 2.12 показано то, что вы увидите в окне программы для просмотра апплетов.

Рис. 2.12. Вид апплета WelcomeApplet в окне программы просмотра апплетов

Первая команда нам уже знакома - она вызывает компилятор языка Java. Он компилирует исходный текст апплета, содержащийся в файле WelcomeApplet. java, создавая файл байт-кода WelcomeApplet. class.

Однако на этот раз мы не запускаем интерпретатор языка Java. Вместо этого мы вызываем программу appletviewer. Эта программа специально предназначена для быстрого тестирования апплетов и входит в пакет Java SDK. Она работает не с файлом класса, а с файлом в формате HTML. Содержание файла WelcomeApplet.html показано в листинге 2.3.

Листинг 2.3
Файл WelcomeApplet.java


WelcomeApplet



This applet is from the book

Core Java by Cay Horstmann and
Gary Cornell, published by Sun Microsystems Press.






The source .



Если вы знаете язык HTML, то заметите некоторые стандартные команды языка HTML и дескриптор applet, приказывающие программе просмотра апплетов загрузить апплет, код которого содержится в файле WelcomeApplet, class. Программа аррletviewer игнорирует все дескрипторы языка HTML, за исключением дескриптора applet.

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

Версии броузера Netscape 6, броузеры Mozilla и Opera поддерживают язык Java 2 как в среде Windows, так й на платформе Linux, хотя эта возможность является факультативной. Для того чтобы поэкспериментировать с апплетами, просто загрузите самую последнюю версию и убедитесь, она поддерживает Java.

Некоторые версии броузера Internet Explorer вообще не поддерживают язык Java. Другие версии поддерживают лишь очень старую виртуальную машину Java компании Microsoft (Java Virtual Machine). Если вы работаете с броузером Internet Explorer под управлением операционной системы Windows, зайдите на сайт http: //java. sun. com/get Java и загрузите программу Java Plug-In. Она добавит в броузер Internet Explorer возможности Java 2.

На платформе Macintosh под управлением операционной системы OS X возможности языка Java уже интегрированы в броузер Internet Explorer. В частности, на момент написания книги этот броузер поддерживал работу с пакетом J2SE версии 1.3. Система OS 9 поддерживает лишь устаревшую версию 1.1.

Если вы работаете с броузером Netscape 4, можете воспользоваться поддержкой языка Java 2, обеспечиваемой программой Java Plug-In. Однако при работе с апплетами, загружаемыми с помощью дескриптора applet, броузер будет по- прежнему использовать устаревшую виртуальную машину языка Java. Следовательно, придется переписать HTML-файл и вместо дескриптора applet использовать довольно неудобный дескриптор embed. Этот подход нельзя назвать удовлетворительным.

Если ваш броузер поддерживает платформу Java 2, попробуйте загрузить в него апплет. Для этого выполните следующие операции.

Запустите ваш броузер.

Выберите в меню опцию File -> Open File (или эквивалентную опцию).
Перейдите в каталог CoreJavaBook/vlch2/WelcomeApplet.

В диалоговом окне вы должны увидеть файлы WelcomeApplet .html и WelcomeAppletPlugin.html.
Загрузите файл, соответствующий вашей настройке. Броузер загрузит апплет вместе с окружающим его текстом. Он будет выглядеть примерно так, как показано на рис. 2.13.

Легко видеть, что это приложение действительно интерактивно и взаимодействует с Интернет. Нажмите на кнопку "Cay Horstmann". Апплет заставит броузер открыть Web- страницу Кея Хорстманна. Щелкните на кнопке "Gary Cornell". Апплет откроет окно для электронной почты, в котором уже указан адрес электронной почты Гари Корнелла.

Рис, 2.13. Запуск апплета WelcomeApplet с помощью броузера

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

Апплет можно запустить из вашего текстового редактора или интегрированной среды разработки. При работе с редактором Emacs выберите в меню опцию JDE -> Run Applet.

При работе с редактором TextPad выберите опцию Tools -> Run Java Applet или используйте комбинацию клавиш . Перед вами откроется диалоговое окно, в котором будут представлены все HTML – файлы, хранящиеся в текущем каталоге. Если вы нажмете клавишу , редактор TextPad автоматически создаст минимальный HTML-файл.

В среде Sun ONE Studio нужно просто загрузить HTML-файл с дескрипторами апплета. Эта среда содержит небольшой броузер, выполняющий апплет на соответствующей Web-странице. В качестве альтернативы можно щелкнуть правой кнопкой мыши на файле с исходным текстом апплета и установить значение свойства "Executor" на закладке равным
"Applet Execution".

Код апплета Welcome показан в листинге 2.4. В данный момент его нужно лишь бегло просмотреть. К созданию апплетов мы еще вернемся в главе 10.

Import javax.swing.*;
import java.awt.*;
import java.awt.event.*,
import java.net.*;

public class WelcomeApplet extends JApplet
{
public void init()
{
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());

JLabel label = new JLabel(getParameter("greeting") ,
SwingConstants.CENTER);
label.setFont(new Font("Serif", Font.BOLD, 18));
contentPane.add(label, BorderLayout.CENTER);

JPanel panel = new JPanel();

JButton cayButton = new JButton("Cay Horstmann");
cayButton.addActionListener(makeURLActionListener
("http://www.horstmann.com"));
Jbutton garyButton = new Jbutton("Gary Cornell");
garyButton.addActionListener(makeURLActionListener
("mailto:garyOthecornells.com"));
panel.add(garyButton);
contentPane.add(panel, BorderLayout.South);
}
public ActionListener makeURLActionListener(fina1 string u)
{
return new
ActionListener ()
{
public void actionPerformed(ActionEvent event)
{
try {
getAppleContext().showDocument(u);
}
catch(Exeption e) (e.printStackTrace (); }
{
e. printStackTrace ();
}
}
} ;

В этой главе мы изучили механизмы компиляции и запуска программ, написанных на языке Java. Теперь мы готовы перейти к главе 3, в которой приступим к изучению языка Java.

Вслед за стремительным развитием информации ВТБ, как и многие другие банки, стал внедрять функцию под названием «дистанционное банковское обслуживание». С этой целью специалистами ВТБ был создан специальный апплет – программа, через которую клиенты и получают доступ к своим счетам. Чаще всего, как и в этом случае, для этих целей используют язык программирования Java (произносится «джава» или «ява»). Чтобы начать пользоваться программой от ВТБ, необходимо скачать программу, установить и настроить ее.

Для чего нужен Java-апплет?

Такой апплет работает, основываясь на трех китах. Их имена: Надежность, Производительность и Безопасность. Так что не удивительно, что апплеты на этой платформе используют не только финансовые организации вроде ВТБ, но и бухгалтерские отделы, научные предприятия, а также производители технической продукции для бытовых и коммерческих потребностей. Возможности платформы многогранны:

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

Описанные преимущества делают платформу Java идеальной для ВТБ апплета.

Возможные ошибки

Ниже собраны самые распространенные ошибки, с которыми сталкиваются клиенты ВТБ после установки апплета, и способы их устранения.

Апплет не запускается после обновления до Java 7 Update 65

Эта проблема чаще всего касается обладателей Windows 7, 8 и 10, с версиями Java 7.0 или 8.0. Суть проблемы сводится к тому, что апплет ВТБ перестал запускаться. Причина кроется в отсутствии строки deployment.javaws.jre.0.args= в документе с именем deployment.properties. Разработчики устранили неполадки в Java 7 Update 67 (7u67), поэтому для большинства, решение проблемы – установка последней версии ПО. Загрузить программу можно по ссылке: https://www.java.com/ru/download/ . Главная страница выглядит так:

В случае, когда обновление невозможно, существуют другие варианты. Конечным пользователям версии 7u65 стоит немного изменить параметры Java Control Panel. Сделать это можно следующим образом:

  1. «Пуск» Windows => «Программы».
  2. В открывшемся меню найти список программ от производителя.
  3. Нажать «Configure Java» («Настроить Java»), чтобы запустился Java Control Panel.
  4. После запуска перейти на вкладку с соответствующим именем.
  5. Нажать «View» («Просмотр»).
  6. Двойной щелчок на «Runtime parameters» («Параметры среды выполнения»). Так вы откроете режим редактирования.
  7. «OK» «Apply» («Применить»).
  8. Последний клик на «OK» для закрытия панели.

Следуя этому руководству любой может настроить свой апплет ВТБ довольно быстро.

Временно решить проблему можно, внеся поправки в код:

  1. Удаление java_arguments из тега апплета решит вопрос со стороны сервера.
  2. Добавление в deployment.properties строки deployment.javaws.jre.0.args= решит вопрос со стороны компьютера.

Так вы заставите апплет ВТБ работать и проблема с обновлением будет решена.

Апплет ВТБ не загружен

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

Это касается и некоторых клиентов ВТБ: при попытке зайти в систему удаленного управления счетами отображается описанная ошибка апплета. Причиной может быть отсутствие апплета или его нерабочее состояние. Однако с этим легко справиться, достаточно последовать простым указаниям ниже.

Легче всего для начала установить апплет ВТБ с официального сайта Java. Сделать это стоит даже тогда, когда программное обеспечение у вас уже есть, но не включено: будет лучше, если на вашем компьютере будет установлена самая актуальная версия программы. Итак, следуйте указаниям:

  1. Зайдите на официальную страницу компании в интернете (ссылка на сервис есть чуть выше в этой статье).
  2. После этого ресурс самостоятельно определяет параметры вашей ОС и предлагает вам ссылку на подходящий вариант ПО.
  3. Нажмите «Загрузить Java бесплатно».
  4. После окончания процесса загрузки запустите файл и установите его, следуя указаниям.
  5. Перезапустите браузер.

Важная информация: начиная с 42-й версии Google Chrome официально не поддерживает апплеты на базе Java, в том числе апплет ВТБ.


Однако он доступен в любом другом браузере, к примеру, Mozilla Firefox. Включить апплет там можно следующим образом:

  1. Запустите браузер (если он не установлен, скачайте его с сайта https://www.mozilla.org/ru/firefox/new/ и установите согласно указаниям).
  2. В меню приложения нажмите «Дополнения» =› «Плагины».
  3. Переключите «Модуль платформы Java» в положение «Всегда включать» (ничего не меняйте, если он уже включен).
  4. Перезагрузите браузер.

После этих нехитрых манипуляций можете свободно заходить на сервис ВТБ: апплет должен работать без перебоев.

Установка апплета ВТБ

Чтобы установить и настроить апплет ВТБ скачайте его по ссылке http://www.java.com⁄ru⁄ . Апплет подойдет под функционалы таких браузеров как FireFox, Opera, Internet Explorer (версия которого должна постоянно обновляться).

Апплет для работы с ВТБ устанавливается в две стадии:

  • установка и настройка платформы SE Runtime Environment;
  • установка самого апплета.

Если для доступа вы планируете использовать персональный компьютер, первый шаг вам не нужен. Порядок установки состоит из пяти пунктов:

  1. «Загрузить».
  2. «Согласиться и начать загрузку» (файл для Windows, расширение.exe).
  3. «Сохранить» =› запуск двойным кликом левой кнопкой мышки.
  4. «Install» («Установить»).
  5. «Close» после завершения установки.

Затем скрипт нужно настроить:

«Пуск» =› контрольная панель =› убрать галочки с протоколов TLS 1.1, TLS 1.2 и «Use SSL 2.0 compatible ClientHello format». Теперь вы имеете свободный доступ к апплету ВТБ.

Настройка браузеров

Окно-предупреждение с сообщением «Внимание. Java апплет не загружен» может возникать по причине браузеров. Чтобы настроить их на взаимодействие с апплетом ВТБ, следуйте инструкциям в таблице ниже.

Браузер Инструктаж
Firefox 1. Нажмите на иконку.
2. В выпадающем меню выберите статус «Разрешить и запомнить».
3. Нажмите «ОК».
4. Зайдите в настройки браузера.
5. Выберите пункт «Дополнения», подпункт «Плагины».
6. Проставьте по всем подпунктам Java статус «Включать по запросу».
Opera 1. Откройте настройки браузера.
2. В пункте «Плагины» (рекомендуется)» выберите «Запускать все содержимое плагинов».
Safari 1. На странице регистрации в системе ВТБ выберите меню «Safari» => «Настройки» => «Безопасность» => «Настроить веб-сайт».
2. В левом списке диалога выберите «Java». В правом списке для сайта ВТБ задайте режим «Вкл.».
3. Нажмите и удерживайте ALT переводя курсор мыши ВКЛ. Затем нажмите кнопку мыши. Появиться выпадающее меню, в котором выбрать «Запустить в безопасном режиме».
4. Нажмите «Готово» и перезагрузите браузер.
Internet Explorer 1. В настройках браузера выберите «Сервис» => «Свойства обозревателя» => «Дополнительно». Снимите отметку SSL 2.0 и отключите использование протоколов TLS 1.1 и 1.2.
2. В настройках браузера выберите «Настроить надстройки».
3. В появившемся окне выберите «Запуск без получения разрешения».
4. В списке надстроек найдите «Java Plug-in ». Состояние данной надстройки должно быть «Включено».

Итак, апплет от ВТБ – штука очень полезная, поэтому важно знать, как правильно установить программное обеспечение для него. Для тех, кто любит наглядные демонстрации, посмотрите видео.

Графические интерфейсы, рисунки и изображения могут быть реализованы в апплетах. Апплеты представляют собой разновидность графических приложений, реализованных в виде классов языка Java, которые размещаются на серверах Internet, транспортируются клиенту по сети, автоматически устанавливаются и запускаются браузером как часть документа HTML. Апплеты позволяют вставлять в документы поля, содержание которых меняется во времени, организовывать "бегущие строки", меню, мультипликацию, производить вычис­ления на клиентской странице. Апплеты выполняются браузером при отображении HTML-документа или просматриваются программой appletviewer. Апплеты не могут записывать файлы и читать информацию из файлов. Эти ограничения связаны с проблемой безопасности клиентского компьютера, поскольку клиенты не желают запускать «троянского коня» в свой компьютер. Существует несколько уровней безопасности, устанавливаемых клиентом для апплетов, загружаемых с сервера (надежные апплеты). КлассApplet обеспечи­вает интерфейс между апплетами и их окружением. Апплеты являются наследниками класса Applet из пакета java . applet из пакета AWT или его подкласса JApplet из пакета Swing.

Есть несколько методов класса Applet , которые управляют созданием и выполнением апплета на Web-странице. Апплету не нужен метод main() ,код запуска помещается в методе init() . Перегружаемый метод init() автома­тически вызывается при загрузке апплета для выполнения начальной инициализации. Методstart() вызывается каждый раз, когда апплет переносится в поле зрения браузера, чтобы начать операции. Метод stop() вызывается каждый раз, когда апплет выходит из поля зрения Web-браузера, чтобы позволить апплету завершить операции. Метод d estroy() вызывается, когда апплет начинает выгружаться со страницы для выполнения финального осво­бождения ресурсов. Кроме этих методов, при выполнении апплета автоматически запускается метод paint () класса Component . Метод paint () не вызывается явно, а только из других методов, например из метода repaint () , если необходима перерисовка.

Ниже приведен пример апплета, в котором используются методы init () , paint () , методsetColor () установки цвета символов и метод drawString () рисования строк.

/* пример # 1: вывод даты: DateApplet .java */

package chapt11;

import java.awt.Color;

import java.awt.Graphics;

import java.util.Calendar;

import java.util.Formatter;

import javax.swing.JApplet;

public class DateApplet extends JApplet {

private Formatter dateFmt = new Formatter();

private Formatter timeFmt = new Formatter();

public void init() {

setSize(180, 100);

Calendar c = Calendar.getInstance();

String era = "";

if (c.get(Calendar.ERA) == 1)

dateFmt.format("%tA %td.%tm.%tY года "

Era, c, c, c, c);

timeFmt.format("%tT", c);

public void paint(Graphics g) {

g.setColor(Color.RED);

g.drawString("Апплет стартовал в " + timeFmt,

10, getHeight()/2);

g.setColor(new Color(0,87,127));

g.drawString(dateFmt.toString(), 13,

getHeight() – 10);

Рис. 11.2. Вывод строки и даты

Доступ к элементам даты осуществлен с помощью класса java . util . Calendar . Цвет выводимых символов устанавливается с помощью полей класса Color .

После выполнения компиляции имя класса, содержащего байт-код апплета, помещается в тег < applet параметры> applet > документа HTML. Например:

DateApplet .class

width = 250 height = 250>

Исполнителем HTML-документа является браузер, который и запускает соответствующий ссылке апплет.

Большинство используемых в апплетах графических методов, как и исполь­зованные в примере методы setColor () , drawString() , – методы абстрактного базового класса java . awt . Graphics . КлассGraphics представляет гра­фический контекст для рисования, который затем отображается на физическое устройство. Методы апплета получают объект класса Graphics (графический кон­текст) в качестве параметра и вместе с ним – текущий цвет, шрифт, положение курсора. Установку контекста обычно осуществляют методы update () или paint () .

Ниже перечислены некоторые методы класса Graphics :

drawLine (int x1, int y1, int x2, int y2) – рисует линию;

drawRect (int x, int y, int width, int height) и fillRect(int x, int y, int width, int height) – рисуют прямоугольник и заполненный прямоугольник;

draw3DRect(int x, int y, int width, int height, boolean raised) – рисует трехмерный прямоугольник;

drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) – рисует округленный прямоугольник;

drawOval(int x, int y, int width, int height) – рисует овал;

drawPolygon(int xPoints, int yPoints, int nPoints) – рисует полигон (многоугольник), заданный массивами координат x и y ;

drawPolygon (Polygon p ) – рисует полигон, заданный объектом Polygon ;

drawPolyline (int xPoints , int yPoints , int nPoints ) – рисует последовательность связных линий, заданных массивами x и y ;

drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) – рисует дугу окружности;

drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer) – вставляет изображение;

drawString (String str, int x, int y) – рисует строку;

setColor(Color c) , getColor() – устанавливает и возвращает текущий цвет;

getFont() – возвращает текущий шрифт;

setFont(Font font) – устанавливает новый шрифт.

Методы класса Graphics используются для отображения графики как для классов Applet , так и для классов JApplet .

В примерах 2–4, приведенных ниже, демонстрируется использование ме­тодов класса Graphics для вывода графических изображений в окно апплета.

/* пример # 2: трехмерные прямоугольники: Th rRect . java */

package chapt11;

import java.awt.Color;

import java.awt.Graphics;

import javax.swing.JApplet;

public class ThrRect extends JApplet {

public void draw3D(Graphics g, int x, int y, int width, int height, boolean isRaised, boolean isFilled) {

g.draw3DRect(x, y, width – 1, height – 1,

g.draw3DRect(x + 1, y + 1, width – 3,

height – 3, isRaised);

g.draw3DRect(x + 2, y + 2, width – 5,

height – 5, isRaised);

if (isFilled)

g.fillRect(x + 3, y + 3, width – 6,

public void paint(Graphics g) {

g.setColor(Color.GRAY);

draw3D(g, 10, 5, 80, 40, true , false );

draw3D(g, 130, 5, 80, 40, false , false );

draw3D(g, 10, 55, 80, 40, true , true );

draw3D(g, 130, 55, 80, 40, false , true );

Рис . 11.3. Трехмерные прямоугольники

Пакет java.awt содержит большое число классов, используемых для вывода изображения: Color , Font , Image , Shape , Canvas и т.д. Кроме того, возможности этого пакета расширяют пакеты java.awt.geom , java.awt.color , java.awt.image и другие.

/* пример # 3: построение фигур : BuildShape. java */

package chapt11;

import java.awt.Color;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.Shape;

import java.awt.geom.*;

import javax.swing.JApplet;

public class BuildShape extends JApplet {

public void init() {

setSize(200, 205);

public void paint(Graphics g) {

Graphics2D g2 = (Graphics2D) g;

g2.rotate(Math.PI / 6);

drawChessBoard(g);

//поворот

g2.rotate(-Math.PI / 6);

g.setXORMode(new Color(200, 255, 250));

Shape e = new Ellipse2D.Float(70, 75, 70, 50);

//рисование эллипса

//рисование шахматной доски

public void drawChessBoard(Graphics g) {

int size = 16;

for (int y = 0; y < 8; y++) {

for (int x = 0; x < 8; x++) {

if ((x + y) % 2 == 0)

g.setColor(Color.BLUE);

g.setColor(Color.WHITE);

g.fillRect(75 + x * size, y * size – 25, size, size);

g.setColor(Color.BLACK);

g.drawString(new Character(

(char ) (‘8’ – y)).toString(), 66, y * size – 13);

g.drawString(new Character(

(char ) (y + ‘a’)).toString(),

79 + y * size, 8 * size – 14);

Рис. 11.4. Построение различных фигур

// пример # 4: вывод GIF -изображения: DrawImage . java

package chapt11;

import java.awt.Graphics;

import java.awt.Image;

import javax.swing.JApplet;

public class DrawImage extends JApplet {

private Image img;

public void init() {

img = getImage(getCodeBase(), "joli.gif");

public void paint(Graphics g){

g.drawImage(img, 0, 0, this );

При использовании свойств тега существует возможность передать параметры из HTML-документа в код апплета. Пусть HTML-документ имеет вид:

Параметры апплета

width=250 height=300>

applet >

Тогда для чтения и обработки параметров bNumber и state апплет должен выглядеть следующим образом:

/* пример # 5: передача параметров апплету: ReadParam.java */

package chapt11;

import java.awt.Color;

import java.awt.Graphics;

import java.applet.Applet;

public class ReadParam extends Applet {

private int bNum;

private boolean state;

public void start() {// чтение параметров

param = getParameter("state");

if (param != null )

state = new Boolean(param);

param = getParameter("bNumber");

if (param != null )

bNum = Integer.parseInt(param);

} catch (NumberFormatException e) {

state = false ;

public void paint(Graphics g) {

double d = 0;

if (state) d = Math.pow(bNum, 2);

else g.drawString("Error Parameter", 0, 11);

g.drawString("Statement: " + state, 0, 28);

g.drawString("Value b: " + bNum, 0, 45);

g.drawString("b power 2: " + d, 0, 62);

Рис. 11.5. Передача параметров в апплет

Если параметр недоступен, метод getParameter () возвращает null .

При применении управляющих компонентов в апплетах принято использовать классы из пакета javax . swing , в которых компонент на экране создается средствами Java и в минимальной степени зависит от платформы и оборудования. Такими классами-компонентами являются JButton , JCheckBox , JDialog , JMenu , JComboBox , JMenu , JTextField , JTextArea и другие. Компоненты, как правило, размещают в контейнер (класс C ontainer ), являющийся неявным объектом любого графического приложения. Явную ссылку на контейнер можно получить с помощью метода getContentPane () .

// пример # 6: апплет с компонентом: MyJApplet.java

package chapt11;

import java.awt.Container;

import javax.swing.JApplet;

import javax.swing.JLabel;

public class MyJApplet extends JApplet {

private JLabel lbl = new JLabel("Swing-applet!");

public void init() {

Container c = getContentPane();

Рис. 11.6. Апплет с меткой

В этой программе производится помещение текстовой метки JLabel на форму в апплете. Конструктор класса JLabel принимает объект String и использует его значение для создания метки. Автоматически вызываемый при загрузке апплета метод init() обычно отвечает за инициализацию полей и размещение компонента на форму. Для этого вызывается метод add() класса Container , который помещает компонент в контейнер. Метод add() сразу не вызывается, как можно сделать в библиотеке AWT. Пакет Swing требует, чтобы все компоненты добавлялись в "панель содержания" формы ContentPane , так что требуется сначала вызывать метод getContentPane() классаJApplet для создания ссылки на объект, как часть процесса add() .

// пример # 7: жизненный цикл апплета: DemoLC . java

package chapt11;

import java.awt.Color;

import java.awt.Graphics;

import javax.swing.JApplet;

public class DemoLC extends JApplet {

private int starX =

{ 112, 87, 6, 71, 47, 112, 176, 151, 215, 136 };

private int starY =

{ 0, 76, 76, 124, 200, 152, 200, 124, 76, 76 };

private int i;

private Color c;

public void init() {

c = new Color(0, 0, 255);

setBackground(Color.LIGHT_GRAY);

public void start() {

int j = i * 25;

if (j < 255)

c = new Color(j, j, 255 – j);

else i = 1;

public void paint(Graphics g) {

g.fillPolygon(starX, starY, starX.length);

g.setColor(Color.BLACK);

g.drawPolygon(starX, starY, starX.length);

public void stop() {

Рис. 11.7. Цвет полигона и жизненный цикл апплета

При работе со шрифтами можно узнать, какие из них доступны на компьютере, и использовать их. Для получения этой информации применяется метод getAvailableFontFamilyNames() класса GraphicsEnvironment . Метод возвращает массив строк, содержащий имена всех доступных семейств шрифтов, зарегистрированных на данном компьютере.

// пример # 8: доступ к шрифтам ОС: Fon ts .java

package chapt11;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.GraphicsEnvironment;

import javax.swing.JApplet;

public class Fonts extends JApplet {

private String fonts;

public void init() {

GraphicsEnvironment ge =

GraphicsEnvironment.getLocalGraphicsEnvironment();

fonts = ge.getAvailableFontFamilyNames();

setSize(700, 400);

public void paint(Graphics g) {

int xSize = getWidth() / 170;

for (int i = 0; i < fonts.length; i++) {

g.setFont(new Font(

fonts[i], Font.PLAIN, 12)); // название, стиль, размер

g.drawString(fonts[i],

170 * (i % xSize), 13 * (i / xSize + 1));

Рис. 11.8. Вывод списка шрифтов