Что такое java апплет не загружен. Java апплет не загружен что делать. Создание и запуск файла JSP или HTML

Скачать Viber 11.04.2019
Скачать Viber

Скачать и установить 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». Все готово.

15 ответов

Я думаю, что Java-апплеты были омрачены Flash и ActionScript (каламбур непреднамеренно), что намного проще в использовании для того, что Java-апплеты использовались в то время (анимации + приложения с поддержкой состояния).

Успех Flash в этом отношении, в свою очередь, связан с гораздо меньшими размерами файлов, а также выгодой от решения Sun против Microsoft, в результате которого Microsoft удалила MSJVM из Internet Explorer во время кончины Netscape и тяжелого доминирования IE.

1) AWT сделал для ужасных пользовательских интерфейсов. Свинг улучшился, но было уже слишком поздно, потому что... 2) Microsoft отказалась от поддержки Java в браузере (ее проприетарный MSJVM), и до этого он поддерживал бы только последнюю версию, выпущенную, которая была примерно совместима с JDK 1.1.
3) Итак, сегодня вы не можете быть уверены, что апплет будет работать на большинстве машин, не являющихся разработчиками, в отличие от flash.

То же самое можно сказать об ActiveX.

Для чего это стоит, Солнце снова наливает деньги и ресурсы в апплеты. Они внесли некоторые существенные улучшения в JDK 1.6.10 , чтобы смягчить множество апплетов "clunkiness", которые были выставлены. Например, с помощью этого обновления вы можете отображать собственный пользовательский загрузочный образ/анимацию, пока загружается апплет, а плагин добавлен в основную диету для повышения производительности.

Они также приступили к инициативе напрямую конкурировать с Flash и Silverlight - JavaFX .

Будет ли рынок реагировать на все это, еще предстоит увидеть, но это, безусловно, захватывающий шаг на стороне Солнца, учитывая доминирование Flash на рынке.

Я предполагаю это, потому что java является "реальным", т.е. язык общего назначения. Чтобы сделать апплет, вам нужно написать код, и нет ярлыков.

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

Я думаю, что апплеты являются побочным ущербом в битве между Microsoft и Sun.

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

В рамках еще одного частного антимонопольного иска, поданного против Microsoft компанией Sun в марте, Sun запросила предварительный судебный запрет, требующий от Microsoft включить текущую виртуальную машину Java (JVM) в операционную систему Windows XP. Microsoft заявила, что решение о включении JVM на этой неделе является прямым результатом последней юридической запутанности с Sun, но Microsoft планирует расформировать поддержку Java в Windows после 1 января 2004 года. Курс Microsoft Reverses, включит Java VM в Windows XP - сейчас

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

Итак, чтобы ответить на исходный вопрос, у меня есть собственный вопрос - вы спрашиваете: "Почему сайты не используют java-апплеты больше", и мой ответ "зачем кому-то захотеть?"

Я вижу их много в acedemic настройках (размещенных на факультетах или факультетах), но вы правы в том, что они не очень популярны.

Однако помните, что большие обещания Java достигнуты. У нас есть Flash, Java-апплеты, Silverlight и постоянно совершенствующиеся фреймворки JavaScript.

Теперь, если я сделал личное мнение - я думаю, что Java-апплеты неэлегантны. Они, как правило, выглядят уродливыми, среда выполнения Java делает его присутствие в ОС слишком известным (с точки зрения визуализации времени выполнения, обновлений и уродливого установщика). Flash намного лучше сочетается с богатой медиа-средой и ее прозрачным (и повсеместным) развертыванием.

Я считаю, что проблемы совместимости были большой проблемой. В особенности с IE и Microsoft Java VM, которые не соответствовали стандартам, как это могло бы быть.

Даже с Sun JVM у вас могут быть проблемы. Мне было весело, где у меня было два сторонних апплета, требующих разные версии Java, которые вызывают всевозможные проблемы. Sun попыталась решить эту проблему, заменив апплеты на Java Web Start , в котором содержится ссылка в браузере, запускающая приложение в его собственное окно а не внутри браузера. (В теории с JWS у вас могут быть разные приложения, использующие разные виртуальные машины, но они никогда не работают для меня, как и должны.)

Продвижение с помощью JavaScript также позволило разработчику гораздо более богатых веб-страниц, поэтому многие вещи в прошлом, которые вы могли сделать только в Applets, теперь можно сделать просто с AJAX.

Во-первых, они не ушли. Вы все еще можете найти много апплетов в Интернете, многие люди используют их, в частности, для демонстрации алгоритмов и т.д.
Преимущества: можно использовать существующие библиотеки (математика, физика, сортировка, граф и т.д.), И это быстрее, чем Flash.
Неудобство: возможно, было бы рискованно нацелиться на недавнюю JVM (хотя Sun сделала хорошую работу по автоматическим обновлениям, похоже, что многие люди уже используют Java 1.6), время загрузки немного медленное (даже несмотря на большой прогресс в этом).

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

Во-вторых, я могу предсказать интерес к JavaFX. Апплеты на стероидах, способные нарушить легенду "апплеты уродливые"...: -)

Наконец, библиотека, подобная Processing , позволяет легко создавать графические интенсивные апплеты, и вы можете найти много из них в Сети, например. на OpenProcessing , где самые худшие (новички в программировании) близки к лучшему!

Интересно, насколько широко распространена JVM? В случае Flash IE5 предустановил его, предоставив ему большую автоматическую базу пользователей. Но если JVM не был включен с установкой ОС, у пользователей этого не было бы. Я полагаю, что в качестве разработчика вы нацеливаете самую большую базу установки, что означает выбор Flash поверх Java.

Здесь и там есть Java-апплеты; определенно не повсеместно.

В статье, я расскажу как исправить ошибку Java апплет не загружен. На протяжении более чем десятилетия существовало большое количество веб-технологий. Так, например, для мультимедиа и простых игр использовался Flash, а для проведения операций, предъявляющих высокие требования к безопасности – ActiveX и Java. Но если разработанная Microsoft ActiveX уже давно канула в лету, то Java EE продолжает быть актуальной до сих пор. И дело не в том, что не существует достойных и более простых для конечного пользователя аналогов (они-то как раз появились несколько лет назад), проблема в том, что некоторые организации вложили десятки и сотни тысяч долларов в разработку приложений на основании этих технологий, и они просто так не могут от них отказаться. Именно поэтому, пользователи при попытке войти в определенный сервис могут видеть сообщение: Java апплет не загружен, что делать если вы повстречали его мы как раз и рассмотрим ниже.

У некоторых клиентов ВТБ24 при попытки зайти в ВТБ24 онлайн возникает ошибка. Она как раз связана с тем, что Java апплет либо не установлен в системе, либо он отключен.

Чтобы исправить эту ошибку с загрузкой Java и без проблем войти в панель управления счетом потребуется выполнить ряд простых действий.

Что делать, если Java апплет не загружен

В первую очередь потребуется установить само программное обеспечение. Если оно загружено, но не включено, все равно скачайте – пусть будет установлена самая свежая версия. Для этого:

  1. Посетите страницу загрузки Java на официальном сайте ;
  2. Ресурс должен самостоятельно определить операционную систему и предложить ссылку на загрузку нужной версии ПО;
  3. Кликните на красную кнопку «Загрузить Java бесплатно»;
  4. После этого сразу начнется процесс загрузки;
  5. Запустите скаченный файл и проследуйте инструкциям;
  6. Перезагрузите браузер.

Следует отметить, что в Google Chrome (начиная с 42-й версии) апплет Java официально не поддерживается, так как корпорация считает соответствующую технологию устаревшей. Поэтому, чтобы воспользоваться Java запустите другой веб-браузер, например, FireFox.

Чтобы проблем с Java не возникало, выполните следующие действия:

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

После выполнения указанных действий заходите на интересующий вас сайт – весь его функционал (конечно, если он не использует других сторонних технологий) будет работать, а ошибки с загрузкой Java апплет не возникнет.

Можно ли обойтись без Java

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

Вконтакте

Привет, любимый читатель.
Сегодня ты узнаешь как подписать JAVA апплет. Для начала скажу, что JAVA апплеты имеют ограниченную функциональность, пока они не подписаны. Например, неподписанные апплеты не могут:

Вариантов решения проблемы несколько:
1. Разрешить выполнение на каждой локальной машине клиентов. Для этого можно отредактировать файл java.policy, который находится в папке с установленным JRE (по умолчанию в C:\Program Files\Java\jre6\lib\security). И добавить необходимые разрешения. Например, чтобы разрешить все, что можно, нужно вставить строчку:

Grant { ... permission java.security.AllPermission; }

А если нужно разрешить только работу с буфером обмена для сайта hackmeplease.com :

Grant codeBase "http://hackmeplease.com/*" { permission java.awt.AWTPermission "accessClipboard"; };

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

2. Подписать свой Java-апплет. Итак, что имеем на входе:
- установленные JDK и JRE;
- jar-файл своего апплета (есть некоторые особенности написания исходного кода, см. ниже);
- желание работать с буфером обмена. Для этого нужно, чтобы корректно работала строчка:

Toolkit toolkit = Toolkit.getDefaultToolkit();
Clipboard clipboard = toolkit.getSystemClipboard();

В случае вызова этих строчек, из неподписанного апплета получим следующее исключение:
java.security.AccessControlException: access denied (java.awt.AWTPermission accessClipboard)

Итак, приступим:
0. Переходим в папку BIN нашего JDK (например, C:\Program Files\Java\jdk1.6.0_23\bin).
I. Создаем локальное хранилище нашего сертификата (keystore):
keytool -genkey -keystore .keystore -alias «Terrasoft» -validity 99999

99999 - срок в месяцах валидности сертификата;
.keystore - имя файла создаваемого хранилища.

В случае успешного запуска команды, система спросит нас пароль нашего хранилища, а также некоторую информацию о сертификате (твои ФИО, название компании, город, страну и группу крови)

В результате будем иметь файл.keystore. Это и есть наше хранилище, которым мы будем подписывать разные апплеты.
II. Копируем в папку BIN нашего JDK наш JAR-файл. Подписываем его с помощью следующей команды:
jarsigner.exe -keystore .keystore ClipboardLibrary.jar «Terrasoft»
где Terrasoft - название alias нашего сертификата;
.keystore - имя файла хранилища;
ClipboardLibrary.jar - название JAR-файла.
Система спросит нас пароль - вводим тот, что ввели в п. I.

Вроде как готово… Да щас, наивный…
Итак, при запуске страницы с нашим апплетом на борту пользователь получит дружественное сообщения вида:

Что означает, «Пользователь, нажми Да и попрощайся со своей системой, ибо мы сможем с ней делать, что захотим».
Кстати, обратите внимание на NOT VERIFIED. Означает, что у нас не доверительный сертификат. Чтобы получить доверительный, нужно обращаться в специальные службы в инете и даже платить деньгу.

Но вернемся к нашим баранам. При обращении к буферу обмена мы снова получим исключение вида:
java.security.AccessControlException: access denied (java.awt.AWTPermission accessClipboard)

Очень жаль. Ну что же, не получилось сейчас - получится в другой раз. До свидания.

Шучу. На самом деле на этом моменте останавливаются все руководства по подписыванию апплетов, которые я встречал. Мол, подписанному апплету ничего не страшно. Пусть им всем будет стыдно.
Короче, следующий финт для того, чтобы наше обращение к буферу обмена заработало:

III. Изменить исходный код.
Вместо вызова вида:
clipboard = toolkit.getSystemClipboard()
нужно написать вызов вида:
clipboard = (Clipboard) AccessController.doPrivileged(new PrivilegedAction() { public Object run() { return toolkit.getSystemClipboard(); } });
После этого нужно перекомпилировать свой JAR и повторить шаг II (тем, кто читал с конца мое сообщение - респект).

Вот в общем-то и все. Должно работать. Надеюсь, что кому-то это пригодится, и он не будет столько своей жизни тратить на эту ерунду, сколько потратил я. Нехай проблеми i негоди не роблять вам в життi погоди (С). До новых встреч в эфире.

Графические интерфейсы, рисунки и изображения могут быть реализованы в апплетах. Апплеты представляют собой разновидность графических приложений, реализованных в виде классов языка 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. Вывод списка шрифтов



Рекомендуем почитать

Наверх