Аплетот е Јава програма што работи во веб -прелистувач. Аплетот може да биде целосно функционална Java апликација бидејќи го има целиот Java API на располагање. Постојат некои важни разлики помеѓу аплет и самостојна Java апликација, вклучувајќи ги и следниве - Аплетот е Јава класа која ја проширува класата java.applet.Applet. Методот main () не се повикува на аплет, а класата аплет нема да дефинира main (). Аплетите се дизајнирани да бидат вградени во HTML -страница. Кога корисникот гледа HTML -страница што содржи аплет, кодот за аплетот се презема на машината на корисникот. Потребен е JVM за да видите аплет. JVM може да биде или додаток на веб-прелистувачот или посебно работно опкружување. JVM на машината на корисникот создава пример од класата аплет и повикува различни методи за време на животот на аплетот. Аплетите имаат строги безбедносни правила што ги спроведува веб -прелистувачот. Безбедноста на аплет често се нарекува безбедност на песок, споредувајќи го аплетот со дете што игра во песок со различни правила што мора да се почитуваат. Останатите класи што му се потребни на аплетот може да се преземат во една датотека Јава архива (JAR). Животен циклус на аплет Четири методи во класата Аплет ви даваат рамка на која градите сериозен аплет - init - Овој метод е наменет за каква иницијализација е потребна за вашиот аплет. Се повикува откако се обработени пара -ознаките внатре во ознаката аплет. start - Овој метод автоматски се повикува откако прелистувачот ќе го повика иницијалниот метод. Исто така, се повикува секогаш кога корисникот се враќа на страницата што содржи аплет откако ќе отиде на други страници. stop - Овој метод автоматски се повикува кога корисникот се поместува од страницата на која седи аплетот. Затоа, може постојано да се нарекува во ист аплет. destroy - Овој метод се повикува само кога прелистувачот се исклучува нормално. Бидејќи аплетите треба да живеат на HTML -страница, вообичаено не треба да оставате ресурси зад себе откако корисникот ќе ја напушти страницата што ја содржи аплетот. paint - Се повикува веднаш по методот старт (), а исто така и во секое време кога аплетот треба да се префарба во прелистувачот. Методот paint () всушност е наследен од java.awt. Аплет „Здраво“ Следува едноставен аплет со име HelloWorldApplet.java - import java.applet.*; import java.awt.*;
public class HelloWorldApplet extends Applet { public void paint (Graphics g) { g.drawString ("Hello World", 25, 50); } }
Овие изјави import ги внесуваат класите во опсегот на нашата класа аплет java.applet.Applet java.awt.Graphics
Без тие изјави за увоз, компајлерот Јава нема да ги препознае класите Аплет и графика, на кои се однесува класата аплет. Класа на аплет Секој аплет е продолжение на класата java.applet.Applet. Основната класа Аплет обезбедува методи што може да ги повика изведената класа Аплет за да добие информации и услуги од контекст на прелистувачот. Тие вклучуваат методи што го прават следново - Добијте параметри на аплет Добијте ја локалната мрежа на HTML -датотеката што ја содржи аплетот Добијте ја мрежната локација на директориумот за класа аплет Печатете порака за статус во прелистувачот Добијте слика Преземете аудио клип Пуштете аудио клип Променете ја големината на аплетот Дополнително, класата Аплет обезбедува интерфејс преку кој гледачот или прелистувачот добива информации за аплетот и го контролира извршувањето на аплетот. Гледачот може - Побарајте информации за авторот, верзијата и авторските права на аплетот Побарајте опис на параметрите што аплетот ги препознава Иницијализирајте го аплетот Уништи го аплетот Започнете со извршување на аплетот Запрете го извршувањето на аплетот
Класата Аплет обезбедува стандардни имплементации на секој од овие методи. Овие имплементации може да бидат поништени по потреба. Аплетот „Здраво, свет“ е завршен како што стои. Единствениот метод што е отфрлен е методот на боја. Повикување на аплет
Аплетот може да се повика со вметнување директиви во HTML-датотека и прегледување на датотеката преку прегледувач на аплет или прелистувач овозможен за Јава.
Ознаката <applet> е основа за вметнување аплет во HTML -датотека. Следува пример кој се повикува на аплетот „Здраво, свет“ -
<html> <title> Здраво, светски аплет </title> <hr> <applet code = "HelloWorldApplet.class" width = "320" height = "120"> Ако вашиот прелистувач беше вклучен за Јава, "Здраво, свет" пораката ќе се појави овде. </applet> <hr> </html>
Забелешка - Може да се повикате на HTML Applet Tag за да разберете повеќе за повикување аплет од HTML.
Потребен е атрибутот за код на ознаката <applet>. Ја одредува класата Аплет што треба да се изврши. Исто така, се бара ширина и висина за да се одреди почетната големина на панелот во кој работи аплет. Директивата за аплет мора да се затвори со ознака </applet>.
Ако аплет зема параметри, вредностите може да се пренесат за r параметрите со додавање на ознаки <param> помеѓу <applet> и </applet>. Прелистувачот игнорира текст и други ознаки помеѓу ознаките за аплети.
Прелистувачите што не овозможуваат Java, не обработуваат <applet> и </applet>. Затоа, с anything што се појавува помеѓу ознаките, а не е поврзано со аплетот, е видливо во прелистувачи што не овозможуваат Јава.
Прегледувачот или прелистувачот го бара собраниот Java код на локацијата на документот. За да наведете поинаку, користете го атрибутот codebase на ознаката <applet> како што е прикажано -
<applet codebase = "https://amrood.com/applets" code = "HelloWorldApplet.class" width = "320" height = "120">
Ако аплет живее во пакет различен од стандардниот, пакетот за држење мора да биде наведен во атрибутот код користејќи го знакот за период (.) За да ги оддели компонентите на пакетот/класата. На пример -
<applet = "mypackage.subpackage.TestApplet.class" width = "320" height = "120">
Добивање параметри на аплет
Следниот пример покажува како да се направи аплет да реагира на параметрите за поставување наведени во документот. Овој аплет прикажува шема за шаховска табла со црна и втора боја.
Втората боја и големината на секој квадрат може да се наведат како параметри на аплетот во документот.
CheckerApplet ги добива своите параметри во методот init (). Исто така, може да ги добие своите параметри во методот paint (). Сепак, добивањето на вредностите и зачувувањето на поставките еднаш на почетокот на аплетот, наместо при секое освежување, е погодно и ефикасно.
Прегледувачот на аплети или прелистувачот го повикува методот init () на секоја аплет што ја работи. Прегледувачот повикува init () еднаш, веднаш по вчитувањето на аплетот. (Applet.init () се имплементира за да не направи ништо.) Префрлете ја стандардната имплементација за да внесете сопствен код за иницијализација.
Методот Applet.getParameter () добива параметар со оглед на името на параметарот (вредноста на параметарот е секогаш стринг). Ако вредноста е нумеричка или други податоци без знаци, низата мора да се анализира.
Следново е скелет на CheckerApplet.java -
увоз java.applet.*; увоз java.awt.*;
јавна класа CheckerApplet го проширува аплетот { int квадрат Големина = 50; // иницијализирана до стандардна големина public void init () {} private void parseSquareSize (String param) {} приватна боја parseColor (String param) {} јавна празнина со боја (Графика g) {} }
Еве ги методите на инит () и приватниот parseSquareSize () на CheckerApplet -
public void init () { Стринг квадратSizeParam = getParameter ("квадратна големина"); parseSquareSize (квадратна големинаПарам);
Стринг бојаParam = getParameter ("боја"); Боја fg = parseColor (colorParam);
setBackground (Боја.црна); setForeground (fg); }
private void parseSquareSize (String param) { ако (param == null) враќање; пробај { squareSize = Integer.parseInt (param); } фати (исклучок д) { // Нека остане стандардната вредност } }
Аплетот повикува parseSquareSize () за да го анализира параметарот squareSize. parseSquareSize () го повикува библиотечниот метод Integer.parseInt (), кој ја анализира низата и враќа цел број. Integer.parseInt () фрла исклучок секогаш кога неговиот аргумент е неважечки.
Затоа, parseSquareSize () фаќа исклучоци, наместо да дозволи аплетот да пропадне при лош влез.
Аплетот повикува parseColor () за да го анализира параметарот на бојата во вредност на боја. parseColor () прави серија споредби со низи за да одговара на вредноста на параметарот со името на однапред дефинирана боја. Треба да ги имплементирате овие методи за да работи овој аплет. Назначување параметри на аплет
Следново е пример за HTML -датотека со вградена CheckerApplet. HTML -датотеката ги одредува двата параметри на аплетот со помош на ознаката <param>.
<html> <title> Аплет за шаховска табла </title> <hr> <applet code = "CheckerApplet.class" width = "480" height = "320"> <param name = "color" value = "blue"> <param name = "квадрати" value = "30"> </applet> <hr> </html>
Забелешка - Имињата на параметрите не се чувствителни на големи букви. Конверзија на апликации во аплети
Лесно е да се конвертира графичка Java апликација (односно апликација која користи AWT и која можете да ја започнете со стартувачот на Java програмата) во аплет што можете да го вметнете во веб -страница.
Следуваат специфичните чекори за претворање на апликација во аплет.
Направете HTML страница со соодветна ознака за вчитување на кодот на аплет.
Набавете подкласа од класата JApplet. Направете ја оваа класа јавна. Во спротивно, аплетот не може да се вчита.
Елиминирајте го главниот метод во апликацијата. Не конструирајте прозорец со рамки за апликацијата. Вашата апликација ќе се прикаже во внатрешноста на прелистувачот.
Преместете го секој код за иницијализација од конструкторот на прозорецот на рамката во методот инит на аплетот. Не треба експлицитно да го конструирате објектот аплет. Прелистувачот го инстанцира за вас и го повикува иницијалниот метод.
Отстранете го повикот до setSize; за аплети, димензионирањето се врши со параметрите за ширина и висина во HTML -датотеката.
Отстранете го повикот до setDefaultCloseOperation. Аплетот не може биде затворен; престанува кога излегува прелистувачот.
Ако апликацијата повикува setTitle, елиминирајте го повикот кон методот. Аплетите не можат да имаат наслови. (Се разбира, можете да ја насловите самата веб -страница, користејќи ја ознаката за наслов на HTML.)
Не повикувајте setVisible (точно). Аплетот се прикажува автоматски.
Ракување со настани
Аплетите наследуваат група методи за ракување со настани од класата Контејнер. Класата Контејнер дефинира неколку методи, како што се processKeyEvent и processMouseEvent, за справување со одредени типови на настани, а потоа и еден метод за опфаќање наречен processEvent.
За да реагира на настан, аплет мора да го замени соодветниот метод специфичен за настанот.
увоз java.awt.event.MouseListener; увоз java.awt.event.MouseEvent; увоз java.applet.Applet; увоз java.awt.Графики;
јавен час ПримерEventHandling ги проширува Applet имплементира MouseListener { StringBuffer strBuffer;
public void init () { addMouseListener (ова); strBuffer = нов StringBuffer (); addItem ("иницијализирање на јаболкото"); }
јавен празнина започне () { addItem ("стартување на аплет"); }
јавна празнина стоп () { addItem ("запирање на аплетот"); }
јавен празнина уништи () { addItem ("истовар на аплетот"); }
void addItem (стринг збор) { System.out.println (збор); strBuffer.append (збор); пребојување (); }
јавна празнина со боја (Графика g) { // Нацртајте правоаголник околу областа за прикажување на аплетот. g.drawRect (0, 0, getWidth () - 1, getHeight () - 1);
// прикажете ја низата во правоаголникот. g.drawString (strBuffer.toString (), 10, 20); }
јавен празнина глувчето Внесено (настан MouseEvent) { } јавен празнина глувче Побудено (настан на MouseEvent) { } јавен празнина глувчето Притиснато (настан MouseEvent) { } јавен празнина глушец Објавен (настан MouseEvent) { } јавен празнина глушец Кликнете (настан MouseEvent) { addItem ("кликнато на глувчето!"); } }
Сега, ајде да го наречеме овој аплет на следниов начин -
<html> <title> Ракување со настани </title> <hr> <applet code = "ExampleEventHandling.class" width = "300" height = "300"> </applet> <hr> </html>
Првично, аплетот ќе прикаже "иницијализирање на аплет. Стартување на аплет". Потоа, откако ќе кликнете внатре во правоаголникот, ќе се прикаже и „кликнато на глувчето“. Прикажување слики
Аплетот може да прикажува слики со формат GIF, JPEG, BMP и други. За да прикажете слика во аплетот, користете го методот drawImage () пронајден во класата java.awt.Graphics.
Следува пример што ги илустрира сите чекори за прикажување слики -
увоз java.applet.*; увоз java.awt.*; увезете java.net.*;
јавен час ImageDemo го проширува аплетот { приватна слика на сликата; приватен контекст на AppletContext;
public void init () { контекст = this.getAppletContext (); Стринг imageURL = this.getParameter ("слика"); ако (imageURL == null) { imageURL = "java.jpg"; } пробај { URL -адреса = нова URL (this.getDocumentBase (), imageURL); слика = context.getImage (url); } фаќање (погрешноформираноURLException д) { e.printStackTrace (); // Прикажи во статусната лента на прелистувачот context.showStatus ("Не може да се вчита слика!"); } }
јавна празнина со боја (Графика g) { context.showStatus ("Прикажување слика"); g.drawImage (слика, 0, 0, 200, 84, null); g.drawString ("www.javalicense.com", 35, 100); } }
Сега, ајде да го наречеме овој аплет на следниов начин -
<html> <title> Аплетот ImageDemo </title> <hr> <applet code = "ImageDemo.class" width = "300" height = "200"> <param name = "image" value = "java.jpg"> </applet> <hr> </html>
Пуштање аудио
Аплет може да репродуцира аудио датотека претставена со интерфејсот AudioClip во пакетот java.applet. Интерфејсот AudioClip има три методи, вклучувајќи -
јавна празнина игра () - Го репродуцира аудио клипот еднаш, од почеток.
јавна празнина () - предизвикува аудио клипот постојано да се репродуцира.
public void stop () - Престанува да го репродуцира аудио клипот.
За да добиете објект AudioClip, мора да го повикате методот getAudioClip () од класата Аплет. Методот getAudioClip () се враќа веднаш, без разлика дали URL -то се решава или не во вистинска аудио датотека. Аудио датотеката не се презема додека не се направи обид за репродукција на аудио клипот.
Следува пример што ги илустрира сите чекори за репродукција на аудио -
увоз java.applet.*; увоз java.awt.*; увезете java.net.*;
јавен час AudioDemo го проширува аплетот { приватен клип за AudioClip; приватен контекст на AppletContext;
public void init () { контекст = this.getAppletContext (); Стринг аудиоURL = this.getParameter ("аудио"); ако (audioURL == null) { audioURL = "default.au"; } пробај { URL -адреса = нова URL (this.getDocumentBase (), audioURL); клип = context.getAudioClip (url); } фати (погрешноформираноURLException д) { e.printStackTrace (); context.showStatus ("Не може да се вчита аудио датотека!"); } }
јавен празнина започне () { ако (клип! = null) { clip.loop (); } }
јавна празнина стоп () { ако (клип! = null) { clip.stop (); } } }
Сега, ајде да го наречеме овој аплет на следниов начин - <html> <title> Аплетот ImageDemo </title> <hr> <applet code = "ImageDemo.class" width = "0" height = "0"> <param name = "audio" value = "test.wav"> </applet> <hr> </html>
|