рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Аплеты

Аплеты - Отчет по Практике, раздел Компьютеры, Аплеты Оглавление. Цель Работы Задание Для Домашней Подготовки Задание К Лаб...

Аплеты Оглавление. Цель работы Задание для домашней подготовки Задание к лабораторной работе Содержание отчета Контрольные вопросы. Литература. Приложение. Аплеты. Передача параметров Параметры тега <applet> Сведения об окружении аплета Защита от аплета Цель работы 1. Познакомиться с библиотекой java.applet и классом java.applet.Applet 2. Научится обрабатывать события в аплетах. 3. Освоить работу с управляющими компонентами и менеджерами размещения. 4. Применить полученные знания на практике Задание для домашней подготовки Ознакомиться с материалом, предоставленным в приложениях к данным методическим указаниям.

Ознакомиться с текстом задания к лабораторной работе и написать программу. Задание к лабораторной работе o На основе оконного приложения, созданного в лабораторной работе №5 «Программирование графики и обработка событий», разработать аплет – калькулятор Содержание отчета Отчет должен содержать: 1. Постановку задачи, решаемой отлаженной программой. 2. Руководство пользователя отлаженной программы, содержащее описание интерфейсов всех функций программы. 3. Листинг программы с необходимыми комментариями. Контрольные вопросы. 1. В случае, если программа – аплет состоит из нескольких классов и после компиляции сгенерировано несколько файлов *.class, как внутри контейнера <applet></applet> html – файла это необходимо указать? 2. Сколько классов в пакете java.applet? 3. Как изменится работа программы, если внутри блока switch(){} не записывать операторы break. 4. Модифицируйте аплет так, чтобы коэффициент, на который умножается результат, был случайным числом (метод random() класса java.lang.Math) 5. Добавьте текстовым полям слушателей и обработчики событий ActionEvent(). Обработчики также должны вызывать метод вывода результата.

Литература.

Официальные источники: 1. Кен Арнольд, Джеймс Гослинг, Дэвид Холмс. Язык программирования Java™. 2. Официальный сайт Java — http://java.sun.com/ (есть раздел на русском языке с учебником). 3. Java™ 2 SDK, Standard Edition Documentation — 4. Джеймс Гослинг, Билл Джой, Гай Стил. Спецификация языка Java (The Java Language Specification.

Перевод на русский язык — http://www.uni-vologda.ac.ru/java/jls/in dex.html 5. Официальный сайт проекта Eclipse — http://www.eclipse.org/. Другое: 1. Дмитрий Рамодин. Начинаем программировать на языке Java. 2. Николай Смирнов. Java 2: Учебное пособие. 3. Картузов А. В. Программирование на языке Java. 4. Вязовик Н.А. Программирование на Java. 5. Алексей Литвинюк. Введение в интегрированную среду разработки Eclipse.

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

Они не запускаются JVM — их загружает браузер, который сам запускает JVM для выполнения аплета. Эти особенности отражаются на написании программы – аплета.С точки зрения языка Java, аплет — это всякое расширение класса Applet, который, в свою очередь, расширяет класс panel. Таким образом, аплет — это панель специального вида, контейнер для размещения компонентов с дополнительными свойствами и методами.

Менеджером размещения компонентов по умолчанию, как и в классе Panel, служит FlowLayout. Класс Applet находится в пакете java.applet, в котором кроме него есть только три интерфейса, реализованные в браузере. Надо заметить, что не все браузеры реализуют эти интерфейсы полностью. Поскольку JVM не запускает аплет, отпадает необходимость в методе main(), его нет в аплетах. В аплетах редко встречается конструктор.Дело в том, что при запуске первого создается его контекст.

Во время выполнения конструктора контекст еще не сформирован, поэтому не все начальные значения удается определить в конструкторе. Начальные действия, обычно выполняемые в конструкторе и методе main(), в аплете записываются в метод init() класса Applet. Этот метод автоматически запускается исполняющей системой Java браузера сразу же после загрузки аплета.Вот как он выглядит: public void init(){} Метод init () не имеет аргументов, не возвращает значения и должен переопределяться в каждом аплете — подклассе класса Applet.

Обратные действия — завершение работы, освобождение ресурсов — записываются при необходимости в метод destroy(), тоже выполняющийся автоматически при выгрузке аплета. В классе Applet есть пустая реализация этого метода. Кроме методов init() и destroy() в классе Applet присутствуют еще два пустых метода, выполняющихся автоматически.Браузер должен обращаться к методу start() при каждом появлении аплета на экране и обращаться к методу stop(), когда аплет уходит с экрана.

В методе stop() можно определить действия, приостанавливающие работу аплета, в методе start() — возобновляющие ее. Надо сразу же заметить, что не все браузеры обращаются к этим методам как должно. Работу указанных методов можно пояснить простым житейским примером. Приехав весной на дачный участок, вы прокладываете водопроводные трубы, прикручиваете краны, протягиваете шланги — выполняете метод init() для своей оросительной системы.После этого, приходя на участок, включаете краны — запускаете метод start(), а уходя, выключаете их — выполняете метод stop(). Наконец, осенью вы разбираете оросительную систему, отвинчиваете краны, просушиваете и укладываете водопроводные трубы — выполняете метод destroy(). Все эти методы в аплете необязательны.

В примере 1 записан простейший аплет, выполняющий программу HelloWorld. Пример 1. аплет HelloWorld import java.awt.*; import java.applet.*; public class HelloWorld extends Applet{ public void paint(Graphics g){ g.drawstring("Hello, XXI century World!", 10, 30); } } Эта программа записывается в файл HelloWorld.java и компилируется как обычное приложение: Компилятор создает файл HelloWorld.class, но воспользоваться для его выполнения интерпретатором java теперь нельзя — нет метода main(). Вместо интерпретации надо дать указание браузеру для запуска аплета.

Указание браузеру на запуск аплета дается в теге <applet>. В нем обязательно задаются: имя файла с классом аплета параметром code; ширина width и высота height панели аплета в пикселах.

Полностью текст HTML для нашего аплета приведен в примере 2. Пример 2. Файл HTML для загрузки аплета HelloWorld <html> <head><title> Applet</title></head> <body> Ниже выполняется аплет.<br> <applet code = "HelloWorld.class" width = "200" height = "100"> </applet> </body> </html> Этот текст заносится в файл с расширением html или htm, например, HelloWorld.html. Имя файла произвольно, никак не связано с аплетом или классом аплета. Оба файла — HelloWorld.html и HelloWorld.class — помещаются в один каталог на сервере, и файл HelloWorld.html загружается в браузер, который может находиться в любом месте сервера.

Браузер, просматривая HTML-файл, выполнит тег <applet> и загрузит аплет.После загрузки аплет появится в окне браузера, как показано на рисунке 1. Рисунок 1. Аплет HelloWorld в окне Internet Explorer В этом простом примере можно заметить еще две особенности аплетов.

Во-первых, размер аплета задается не в нем, а в теге <applet>. Это очень удобно, можно менять размер аплета, не компилируя его заново. Можно организовать аплет невидимым, сделав его размером в один пиксел.Кроме того, размер аплета разрешается задать в процентах по отношению к размеру окна браузера, например, <applet code = "HelloWorld.class" width = "100%" height = "100%"> Во-вторых, как видно на рис. 1, у аплета серый фон. Такой фон был в первых браузерах, и аплет не выделялся из текста в окне браузера.

Теперь в браузерах принят белый фон, его можно установить обычным для компонентов методом setBackground(Color.white), обратившись к нему в методе init (). В состав JDK любой версии входит программа appietviewer. Это простейший браузер, предназначенный для запуска аплетов в целях отладки.На рисунке 2 appletviewer показывает аплет HelloWorld. Рисунок 2. Аплет HelloWorld в окне программы appletviewer Замечание по отладке Браузеры помещают загруженные аплеты в свой кэш, поэтому после щелчка кнопкой мыши по кнопке Refresh или Reload запускается старая копия аплета из кэша Для загрузки новой копии надо при щелчке по кнопке Refresh в IE (Internet Explorer) держать нажатой клавишу <Ctrl>, а при щелчке по кнопке Reload в NC (Netscape Communicator) — клавишу <Shift> Иногда и это не помогает.

Не спасает даже перезапуск браузера. Тогда следует очистить оба КЭШа – и дисковый, и кэш в памяти.В IE это выполняется кнопкой Delete Files в окне, вызываемом выбором команды Tools | Internet Options.

B NC необходимо открыть окно Cache командой Edit | Preferences | Advanced. При запуске приложения интерпретатором java из командной строки в него можно передать параметры в виде аргумента метода main (string [] args). В аплеты также передаются параметры, но другим путем.Передача параметров Передача параметров в аплет производится с помощью тегов <param>, располагаемых между открывающим тегом <applet> и закрывающим тегом </applet> в HTML-файле.

В тегах <param> указывается название параметра name и его значение value. В аплете для приема каждого параметра надо воспользоваться методом getParameter (String name) класса Applet, Возвращающим строку типа String. В качестве аргумента этого метода задается значение параметра name в виде строки, причем здесь не различается регистр букв, а метод возвращает, значение параметра value тоже в виде строки.Надеясь на то, что параметры будут заданы в HTML-файле, все-таки присвойте начальные значения переменным в аплете.

Замечание по отладке Операторы System.out.println(), обычно записываемые в аплет для отладки, выводят указанные в них аргументы в специальное окно браузера Java Console. Сначала надо установить возможность показа этого окна. В Internet Explorer это делается установкой флажка Java Console enabled выбором команды Tools | Internet Options | Advanced.После перезапуска IE в меню View появляется команда Java Console.

Параметры тега <applet> Обязательные параметры: • code — URL-адрес файла с классом аплета или архивного файла; • width и height — ширина и высота аплета в пикселах. Необязательные параметры: • codebase — URL-адрес каталога, в котором расположен файл класса аплета.Если этот параметр отсутствует, браузер будет искать файл в том же каталоге, где размещен соответствующий HTML-файл; • archive — файлы всех классов, составляющих аплет, могут быть упакованы архиватором ZIP или специальным архиватором JAR в один или несколько архивных файлов.

Параметр задает URL-адреса этих файлов через запятую; • align — выравнивание аплета в окне браузера. Этот параметр имеет одно из следующих значений: ABSBOTTOM, ABSMIDDLE, BASELINE, BOTTOM, CENTER, LEFT, MIDDLE, RIGHT, TEXTTOP, TOP; • hspace и vspace — горизонтальные и вертикальные поля, отделяющие аплет от других объектов в окне браузера в пикселах; • download — задает порядок загрузки изображений аплетом.Имена изображений перечисляются через запятую в порядке загрузки; • name — имя аплета.

Параметр нужен, если загружаются несколько аплетов с одинаковыми значениями code и codebase; • style — информация о стиле CSS (Cascading Style Sheet); title — текст, отображаемый в процессе выполнения аплета; • alt — текст, выводимый вместо аплета, если браузер не может загрузить его; • mayscript — не имеет значения. Это слово указывает на то, что аплет будет обращаться к тексту JavaScript.Между тегами <applet> и </applet> можно написать текст, который будет выведен, если браузер не сможет понять тег <applet>. Вот полный пример: <applet name = "AnApplet" code = "AnApplet.class" archive = "anapplet.zip, myclasses.zip" codebase = " width = "300" height = "200" align = "TOP" vspace = "5" hspace = "5" mayscript alt = "If you have a Java-enabled browser, you would see an applet here."> <hr>If your browser recognized the applet tag, you would see an applet here.<hr> </applet> Обязательно упаковывайте все классы аплета в zip- и jar-архивы и указывайте их в параметре archive в HTML-файле.

Это значительно ускорит загрузку аплета. Следует еще сказать, что, начиная с версии HTML 4.0, есть тег <object>, предназначенный для загрузки и аплетов, и других объектов, например, ActiveX. Кроме того, некоторые браузеры могут использовать для загрузки аплетов тег <embed>. Сведения об окружении аплета Метод getCodeBase () возвращает URL-адрес каталога, в котором лежит файл класса аплета.

Метод getDocumentBase () возвращает URL-адрес каталога, в котором лежит HTML-файл, вызвавший аплет.

Браузер реализует интерфейс AppletContext, находящийся в пакете java.applet. Аплет может получить ссылку на этот интерфейс методом getAppletContext(). С помощью методов getApplet (String name) и getApplets() интерфейса AppletСontext можно получить ссылку на указанный аргументом name аплет или на все аплеты, загруженные в браузер.Метод showDocument(URL address) загружает в браузер HTML-файл с адреса address.

Метод showDocument (URL address, String target) загружает файл во фрейм, указанный вторым аргументом target. Этот аргумент может принимать следующие значения: • _seif — то же окно и тот же фрейм, в котором работает аплет; • _parent — родительский фрейм аплета; • _top — фрейм верхнего уровня окна аплета; • _biank — новое окно верхнего уровня; • name — фрейм или окно с именем name, если оно не существует, то будет создано.Защита от аплета Браузер может вообще отказаться от загрузки аплетов.

В Netscape Communicator это делается с помощью флажка Enable Java в окне, вызываемом командой Edit | Preferences | Advanced, в Internet Explorer — в окне после выбора команды Tools | Internet Options | Security. Если браузер загружает аплет, то создает ему ограничения, так называемую "ящик для песка" (sandbox), в которой резвится аплет, но выйти из которой не может.Каждый браузер создает свои ограничения, но обычно они заключаются в том, что аплет: • не может обращаться к файловой системе машины, на которой он выполняется, даже для чтения файлов или просмотра каталогов; • может связаться по сети только с тем сайтом, с которого он был загружен; • не может прочитать системные свойства; • не может печатать на принтере, подключенном к тому компьютеру, на котором он выполняется; • не может воспользоваться буфером обмена (clipboard); не может запустить приложение методом ехес(); • не может использовать "родные" методы или загрузить библиотеку методом load(); • не может остановить JVM методом exit(); • не может создавать классы в пакетах java.*, а классы пакетов sun.* не может даже загружать.

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

Наименьшие ограничения имеют доверенные (trusted) аплеты, снабженные электронной подписью с помощью классов из пакетов java.security.*. При создании приложения, загружающего аплеты, необходимо обеспечить средства проверки аплета и задать ограничения.

Их предоставляет класс SecurityManager. Экземпляр этого класса или его наследника устанавливается в JVM при запуске виртуальной машины статическим методом setSecurityManager(SecurityManager sm) класса System. Обычные приложения не могут использовать данный метод. Каждый браузер расширяет класс SecurityManager по-своему, устанавливая те или иные ограничения.Единственный экземпляр этого класса создается при запуске JVM в браузере и не может быть изменен.

– Конец работы –

Используемые теги: Аплеты0.04

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Аплеты

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

0.025
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам