Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
КАФЕДРА ПРИКЛАДНОЙ МАТЕМАТИКИ И ИНФОРМАТИКИ
ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA
Лабораторно-практическое занятие №2
Кроме приложений, язык Java позволяет создавать апплеты (applets). Это программы, работающие в среде другой программы браузера. Апплеты не нуждаются в окне верхнего уровня им служит окно браузера. Они не запускаются JVM их загружает браузер, который сам запускает JVM для выполнения апплета. Эти особенности отражаются на написании программы апплета.
С точки зрения языка Java, апплет это всякое расширение класса Applet, который, в свою очередь, расширяет класс Panel. Таким образом, апплет это панель специального вида, контейнер для размещения компонентов с дополнительными свойствами и методами.
Поскольку JVM не запускает апплет, отпадает необходимость в методе main (), его нет в апплетах.
В апплетах редко встречается конструктор. Дело в том, что при запуске первого создается его контекст. Во время выполнения конструктора контекст еще не сформирован, поэтому не все начальные значения удается определить в конструкторе.
Начальные действия, обычно выполняемые в конструкторе и методе main(), в апплете записываются в метод init() класса Applet. Этот метод автоматически запускается исполняющей системой Java браузера сразу же после загрузки апплета. Вот как он выглядит в исходном коде класса Applet:
public void init (){}
Метод init () не имеет аргументов, не возвращает значения и должен переопределяться в каждом апплете подклассе класса Applet. Обратные действия завершение работы, освобождение ресурсов записываются при необходимости в метод destroy (), тоже выполняющийся автоматически при выгрузке апплета. В классе Applet есть пустая реализация этого метода.
Кроме методов init() и destroy() в классе Applet присутствуют еще два пустых метода, выполняющихся автоматически. Браузер должен обращаться к методу start() при каждом появлении апплета на экране и обращаться к методу stop(), когда апплет уходит с экрана. В методе stop() можно определить действия, приостанавливающие работу апплета, в методе start() возобновляющие ее. Надо сразу же заметить, что не все браузеры обращаются к этим методам как должно. Работу указанных методов можно пояснить простым житейским примером.
Приехав весной на дачный участок, вы прокладываете водопроводные трубы, прикручиваете краны, протягиваете шланги выполняете метод init() для своей оросительной системы. После этого, приходя на участок, включаете краны запускаете метод start(), а уходя, выключаете их выполняете метод stop(). Наконец, осенью вы разбираете оросительную систему, отвинчиваете краны, просушиваете и укладываете водопроводные трубы выполняете метод destroy().
Все эти методы в апплете необязательны. Далее представлен простейший апплет, выполняющий программу MySecondProgramm.
import java.awt.*;
import java.applet.*;
public class MySecondProgramm extends Applet{
public void paint(Graphics g){
g.drawString("Hello, PM-33!!", 10, 30);
}
}
Эта программа записывается в файл MySecondProgramm.java и компилируется как обычно: javac MySecondProgramm.java
Компилятор создает файл MySecondProgramm.class, но воспользоваться для его выполнения интерпретатором java теперь нельзя нет метода main(). Вместо интерпретации надо дать указание браузеру для запуска апплета.
Все указания браузеру даются пометками, тегами (tags), на языке HTML (HyperText Markup Language). В частности, указание на запуск апплета дается в теге <applet>. В нем обязательно задается имя файла с классом апплета параметром code, ширина width и высота height панели апплета в пикселах. Полностью текст HTML для нашего апплета приведен ниже:
Файл HTML для загрузки апплета MySecondProgramm:
<html>
<head>
<title> Applet</title>
</head>
<body>
Ниже выполняется апплет.<br>
<applet
code = " MySecondProgramm.class"
width = "200"
height = "100">
</applet>
</body>
</html>
Этот текст заносится в файл с расширением html или htm, например, MySecondProgramm.html. Имя файла произвольно, никак не связано с апплетом или классом апплета.
Оба файла - MySecondProgramm.html и MySecondProgramm.class помещаются в один каталог на сервере, и файл MySecondProgramm.html загружается в браузер, который может находиться в любом месте Internet. Браузер, просматривая HTML-файл, выполнит тег <applet> и загрузит апплет. После загрузки апплет появится в окне браузера.
Размер апплета задается не в нем, а в теге <applet>. Это очень удобно, можно менять размер апплета, не компилируя его заново. Можно организовать апплет невидимым, сделав его размером в один пиксел. Кроме того, размер апплета разрешается задать в процентах по отношению к размеру окна браузера, например,
<applet code = "HelloWorld.class" width = "100%" height = "100%">
Для того, чтобы поменять цвет текста воспользуйтесь методом:
g.setColor(Color.red);
В состав JDK любой версии входит программа appietviewer. Это простейший браузер, предназначенный для запуска апплетов в целях отладки. Если под рукой нет Internet-браузера, можно воспользоваться им. Appietviewer запускается из командной строки:
appietviewer MySecondProgramm.html
К сожалению, нет строгого стандарта на выполнение апплетов, и браузеры могут запускать их по-разному. Программа appietviewer способна показать апплет не так, как браузеры. Приходится проверять апплеты на всех имеющихся в распоряжении браузерах, добиваясь одинакового выполнения.
PAGE 2