Скачать и установить java апплет
Для установки и последующей настройки КриптоПро системы «Банк-клиент Онлайн» вам потребуется скачать java апплет для «ВТБ 24». Скачать можно бесплатно на страничке http://www.java.com/ru/ . Этот компонент понадобиться, если вы будите использовать в своей работе такие браузеры, как Mozilla Firefox, Opera, Internet Explorer. Но это не единственные браузеры, которые поддерживает данная система.
Установка java апплет проходит в два этапа:
- это установка самой платформы yava SE Runtime Environment;
- установка java апплета.
Если java стоит на вашем персональном компьютере, первый этап следует пропустить. Кстати, ПК не попросит вас установить данный компонент. Установка проходит в пять шагов:
- нажмите «Загрузить» скрипт;
- нажмите «Согласиться и начать загрузку»: файл с расширением.exe для операционной системы Windows;
- далее следует «Сохранить» полученный файл и запустить его (щелкнув два клика левой клавишей мышки);
- нажмите кнопку «Install»;
- после того, как процесс установки завершится, вам останется нажать на кнопку «Close». Это будет означать, что установка завершилась.
Настройка скрипта
Настройка осуществляется через «Пуск» в «Панеле управления». Затем откройте контрольную панель. Вам останется только произвести отключение протоколов: TLS 1.1 и TLS 1.2. Сделать это просто: снимите с них галочки напротив. Аналогичным образом отключаем «Use SSL 2.0 compatible ClientHello format». Все готово.
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- файл:
|
Апплеты
Первые два примера, представленные в этой книге, - это приложения, написанные на языке 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 или используйте комбинацию клавиш
В среде 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. Сделать это можно следующим образом:
- «Пуск» Windows => «Программы».
- В открывшемся меню найти список программ от производителя.
- Нажать «Configure Java» («Настроить Java»), чтобы запустился Java Control Panel.
- После запуска перейти на вкладку с соответствующим именем.
- Нажать «View» («Просмотр»).
- Двойной щелчок на «Runtime parameters» («Параметры среды выполнения»). Так вы откроете режим редактирования.
- «OK» «Apply» («Применить»).
- Последний клик на «OK» для закрытия панели.
Следуя этому руководству любой может настроить свой апплет ВТБ довольно быстро.
Временно решить проблему можно, внеся поправки в код:
- Удаление java_arguments из тега апплета решит вопрос со стороны сервера.
- Добавление в deployment.properties строки deployment.javaws.jre.0.args= решит вопрос со стороны компьютера.
Так вы заставите апплет ВТБ работать и проблема с обновлением будет решена.
Апплет ВТБ не загружен
Важная предыстория: из множества технологий, которыми пользовались компании, некоторые безнадежно устарели и уже не в состоянии выполнять свои функции как положено. Однако хозяевам больших предприятий очень жаль потраченных десятков/сотен тысяч долларов на разработку корпоративных приложений на основе упомянутых технологий. В связи с этим, некоторые клиенты, заходя в сервис, могут видеть ошибку с вышеуказанным названием.
Это касается и некоторых клиентов ВТБ: при попытке зайти в систему удаленного управления счетами отображается описанная ошибка апплета. Причиной может быть отсутствие апплета или его нерабочее состояние. Однако с этим легко справиться, достаточно последовать простым указаниям ниже.
Легче всего для начала установить апплет ВТБ с официального сайта Java. Сделать это стоит даже тогда, когда программное обеспечение у вас уже есть, но не включено: будет лучше, если на вашем компьютере будет установлена самая актуальная версия программы. Итак, следуйте указаниям:
- Зайдите на официальную страницу компании в интернете (ссылка на сервис есть чуть выше в этой статье).
- После этого ресурс самостоятельно определяет параметры вашей ОС и предлагает вам ссылку на подходящий вариант ПО.
- Нажмите «Загрузить Java бесплатно».
- После окончания процесса загрузки запустите файл и установите его, следуя указаниям.
- Перезапустите браузер.
Важная информация: начиная с 42-й версии Google Chrome официально не поддерживает апплеты на базе Java, в том числе апплет ВТБ.
Однако он доступен в любом другом браузере, к примеру, Mozilla Firefox. Включить апплет там можно следующим образом:
- Запустите браузер (если он не установлен, скачайте его с сайта https://www.mozilla.org/ru/firefox/new/ и установите согласно указаниям).
- В меню приложения нажмите «Дополнения» =› «Плагины».
- Переключите «Модуль платформы Java» в положение «Всегда включать» (ничего не меняйте, если он уже включен).
- Перезагрузите браузер.
После этих нехитрых манипуляций можете свободно заходить на сервис ВТБ: апплет должен работать без перебоев.
Установка апплета ВТБ
Чтобы установить и настроить апплет ВТБ скачайте его по ссылке http://www.java.com⁄ru⁄ . Апплет подойдет под функционалы таких браузеров как FireFox, Opera, Internet Explorer (версия которого должна постоянно обновляться).
Апплет для работы с ВТБ устанавливается в две стадии:
- установка и настройка платформы SE Runtime Environment;
- установка самого апплета.
Если для доступа вы планируете использовать персональный компьютер, первый шаг вам не нужен. Порядок установки состоит из пяти пунктов:
- «Загрузить».
- «Согласиться и начать загрузку» (файл для Windows, расширение.exe).
- «Сохранить» =› запуск двойным кликом левой кнопкой мышки.
- «Install» («Установить»).
- «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. Например:
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. Вывод списка шрифтов