Преобразуване на приложения в аплети

Съдържание

аплет helloworld. 3

Конвертиране на приложения в аплети.. 3

Жизнен цикъл на аплета. 4

Обработка на събития. 5

Методи за работа с UI компоненти. 6

Пример за работа с UI компонент.. 7

Java аплетът е Java приложна програма под формата на байт код. Java аплетите се изпълняват в уеб браузър с помощта на Java Virtual Machine (JVM) или в AppletViewer на Sun, самостоятелен инструмент за тестване на аплети. Java аплетите бяха въведени в първата версия на езика Java през 1995 г.

Аплетите се използват за предоставяне на интерактивни функции на уеб приложения, които не могат да бъдат предоставени от HTML. Тъй като Java байт кодът е независим от платформата, Java аплетите могат да се изпълняват от браузъри на много платформи.

Основният клас аплет разширява класа java.applet.Applet или, ако създавате аплет Swing, javax.swing.JApplet. Класът трябва да замени методите за създаване на потребителски интерфейс в себе си. (Аплетът е дете на Panel, което от своя страна е дете на Container).

Ползи от използването на Java аплети

  • аплетът може да работи на "всички" версии на Java, инсталирани досега, не само на най-новата версия; ако обаче аплетът изисква най-новата версия на JRE, тогава клиентът ще бъде принуден да изчака по-дълго изтегляне;
  • аплетът се поддържа от повечето браузъри;
  • той се кешира в повечето браузъри и следователно ще се зареди бързо при връщане към уеб страница; но аплетът може да бъде кеширан и да причини проблеми след пускането на нови версии;
  • може да има пълен достъп до машината, на която работи, ако потребителят се съгласи с това;
  • може да прехвърля работа от сървъра към клиента, създавайки интернет решение с,голям брой потребители/клиенти.

Java аплетът има следните недостатъци:

  • изисква инсталиране на Java разширение (plug-in), което не е налично по подразбиране във всички браузъри;
  • внедряването, възприето от плъгина Java на Sun, не съществува за 64-битови процесори;
  • не може да стартира, докато не стартира виртуалната машина на Java и може да отнеме значително време при първото стартиране;
  • създаването и проектирането на добър потребителски интерфейс с помощта на аплети се счита за по-трудно от използването на HTML-базирана технология;
  • поради ненадеждността на аплета, достъпът му до системата на потребителя е значително ограничен: по-специално, той няма директен достъп до диска или клипборда на клиента;
  • някои организации позволяват софтуер, инсталиран само от администратори. В резултат на това много потребители не могат да виждат аплети по подразбиране.
  • аплетите може да изискват използването на специфичен JRE.

Аплет HelloWorld

публичен клас HelloWorld разширява JApplet

public void paint (Graphics g)

g.drawString("Здравей свят!", 5, 15);

Този код трябва да се изпълнява в режим Run as Java Applet. В резултат на това на екрана ще се появи прозорецът на appletviewer, в който ще бъде написан само един ред: „Здравей свят!“.

Ако аплетът използва GUI компоненти от Swing, той трябва да наследи от javax.swing.JApplet.

В случай, че Swing не се използва, е възможно да се наследи от java.applet.Applet.

Преобразуване на приложения в аплети

Както можете да видите, горният код не съдържа главния метод. По това аплетите се различават значително от обикновените приложения, които имат понепоне един клас с основен метод. Вместо това аплетите извикват няколко различни метода по време на изпълнение.

Какво ви трябва, за да превърнете приложение в аплет:

  • Трябва да създадете наследник на клас java.applet.Applet, в който да замените init метода, в който да инициализирате всички необходими ресурси (точно както се случи в основния метод).
  • Методът init може да бъде извикан многократно (за разлика от основния метод), трябва да вземете това предвид, когато го проектирате. + Панелът (ако се използва) в горната част на йерархията трябва да бъде добавен към аплета в метода init (точно както обикновено се прави в основния метод).
  • Класът на аплета се декларира като публичен (така че програмата за преглед на аплети да има достъп до него).
  • Един аплет наследява от Applet/JApplet, а приложението от Frame/JFrame.
  • Аплетът няма основен метод.
  • В аплета конструкторът е заменен от методите start и init.
  • GUI компонентите се добавят директно към аплета, докато в случай на обикновено приложение, тези компоненти се добавят към съдържанието на JFrame.

Жизнен цикъл на аплета

// Няма нужда да наследявате от JApplet, защото не се добавят компоненти -

// случва се само изобразяване

публичен клас Simple разширява Applet

public void init()

буфер = нов StringBuffer();

публично празно начало()

публичен void stop()

публично празно унищожаване ()

addItem("подготвя се за разтоварване. ");

private void addItem (низ нова дума)

public void paint (Graphics g)

// Начертайте линия вътре в правоъгълника

g.drawString(buffer.toString(), 5, 15);

Така един аплет може:

  • Инициализирайте се (метод init).
  • Започнете работа (старт на метода).
  • Спрете да работите (методСпри се). Възниква, когато потребителят отвори друга страница. Ако се върне обратно, методът за стартиране се изпълнява.
  • Извършете окончателно почистване на данните преди разтоварването (първо се изпълнява методът за спиране, след това се унищожава). Случва се например при презареждане на аплета (опресняване на страницата).

В същото време изобщо не е необходимо програмистът да предефинира всички тези методи наведнъж.

Обработка на събития

// Няма нужда да наследявате от JApplet, защото не се добавят компоненти -

// случва се само изобразяване

публичен клас SimpleClick разширява Applet

public void init()

буфер = нов StringBuffer();

публично празно начало()

публичен void stop()

публично празно унищожаване ()

addItem("подготвя се за разтоварване. ");

void addItem(низ нова дума)

public void paint (Graphics g)

// Начертайте линия вътре в правоъгълника

g.drawString(buffer.toString(), 5, 15);

// Следната група празни методи може да бъде премахната, ако е внедрена

public void mouseEntered(събитие MouseEvent)

public void mouseExited (събитие MouseEvent)

public void mousePressed (събитие MouseEvent)

public void mouseReleased(събитие MouseEvent)

public void mouseClicked(събитие MouseEvent)

Както можете да видите, няма забележителни разлики в обработката на събития от обикновените приложения. При натискане на бутона на мишката надписът „кликнете. ".

Компоненти на потребителския интерфейс

  • Едноредови текстови полета (javax.swing.JTextField)
  • По-големи области за показване и редактиране на текст (javax.swing.JTextArea)
  • Области за рисуване (java.awt.Canvas)
  • Менюта (javax.swing.JMenu,javax.swing.JMenuBar javax.swing.JMenuItem, javax.swing.JCheckBoxMenuItem)
  • Контейнери(javax.swing.JPanel, javax.swing.JWindow и неговите подкласове)
следваща лекция ==>
Нормализация на грешките при измерване на съпротивлениетоОсновни команди на Total Commander