Введение в апплеты.

Апплет представляет собой разновидность мини-приложения, предназначенного для работы в Web-броузере или в любой другой программе просмотра апплетов. Апплеты во многом не похожи на обычные приложения. Одно из наиболее важных отличий заключается в существовании ряда ограничений, которые связаны с безопасностью и определяют, что апплету разрешено делать, а что нет.

С точки зрения программиста одно из самых больших различий между апплетами и приложениями состоит в том, что в апплетах отсутствует метод main(), с которого осуществляется запуск программы. Вместо этого для написания апплета следует создать подкласс класса java.applet.Applet и переопределить в нем ряд стандартных методов. В соответствующие моменты времени и при строго определенных обстоятельствах Web-броузер или программа для просмотра апплетов вызовет нужный метод апплета. Сам апплет состоит из одного или более модулей которые называются компилируемыми модулями. Компилируемый модуль может содержать любое синтаксически правильное выражение на языке Java. При запуске апплета его выполнение должно начинаться в какой-то определенной точке программы. Эта точка задается с помощью метода init(), который определён в классе java.applet.Applet. Весь процесс выполнения апплета можно представить как ряд этапов. Первым таким этапом и является метод init(), который используется для подготовки рабочей среды апплета. После того как вы напишете текст апплета, его необходимо откомпилировать с помощью компилятора javac, в результате чего будет получен файл с расширением class, на который можно ссылаться в документе HTML.

Апплет не осуществляет управление потоком выполнения, а просто откликается на соответствующие запросы броузера или программы просмотра апплетов. По этой причине разрабатываемые для апплета методы должны производить необходимые действия и возвращать управление быстро - им запрещено работать с длинными (или бесконечными) циклами. Чтобы выполнять задачи, требующие много времени или повторяющихся действий (например, анимацию), апплет должен создать собственный поток, который будет полностью находиться под управлением апплета.Таким образом, задача по написанию апплета сводится к определению соответствующих методов.

Рассмотрим простейший из всех возможных апплетов Java. Этот пример знакомит нас с методом paint(), который необходим для вывода на экран графической информации апплета. Его аргументом является объект класса Graphics .

import java.applet.*;
import java.awt.*;
public class example1 extends Applet{
// этот метод выводит апплет на экран.
// для графического вывода используется класс java.awt.Graphics

public void paint(Graphics g){
g.drawString("Hello, my friends",25,50); }
}
Для того, чтобы показать апплет на экране, необходим HTML-файл, ссылающийся на этот апплет. Ниже приведён HTML-файл, который ссылается на описанный апплет.
<HTML>
<HEAD>
<TITLE>Example</TITLE>
</HEAD>
<BODY>
<APPLET CODE='example1.class' WIDTH=150 HEIGHT=100>
</APPLET>
</BODY>
</HTML>

Подробнее HTML-теги, связанные с апплетами рассматриваются на следующей странице.
Если ваш броузер поддерживает апплеты Java, то ниже вы увидите результат работы написанного нами апплета, а если - нет, то увидите соответствующее сообщение.
Ваш броузер не поддерживает апплеты Java.

В следующем примере продемонстрировано использование объектов классов Font и Color, а также простейший способ обработки событий в Java. В этот пример введён метод init(), который обычно используется для выполнения одноразовой инициализации, необходимой при первом создании апплета. Метод paint(), за время жизни апплета можно вызвать много раз, поэтому в данном примере применяется метод init() для создания объекта класса Font, используемого в методе paint().
import java.applet.*;
import java.awt.*;
public class hi extends Applet{
static final String message="Hello, friends!",
	Set="NextColor",
	message1="MY APPLET";
Font font;
Color col;
Button C_B; 
int k=1;
public void init(){
	setLayout(new BorderLayout());
	//создаем новый объект типа Button ( кнопка ) 
	C_B=new Button(Set);
	add("South",C_B);
	//задаём тип шрифта
	font=new Font("TimesRoman",Font.BOLD+Font.ITALIC,48);
	//задаём текущий цвет
	col=new Color(0,180,255);
	setBackground(Color.lightGray);
}
public void paint(Graphics g){
	g.setFont(font);
	if(k==1) {
		g.setColor(col);
		g.fillOval(10,30,330,150);
		g.setColor(Color.black);
		g.drawOval(10,30,330,150);
		g.drawString(message,40,125);}
	if (k==2){
		g.setColor(Color.yellow);
		g.fillOval(10,30,330,150);
		g.setColor(Color.black);
		g.drawOval(10,30,330,150);	
		g.drawString(message1,40,125);}
}
//следующий метод производит обработку событий 
//(т.е. реагирует на нажатие кнопки мыши)
public boolean handleEvent(Event evt){
	switch(evt.id){
	case Event.ACTION_EVENT : {
		if (( evt.arg==Set)&&(k==2)){
			k=1;
			repaint();
		}
		else if((evt.arg==Set)&&(k==1)){
			k=2;
			repaint();
		}
		else return false;
         }
	default: return false;
	}
}
}
Результат работы данного апплета вы увидите ниже (если ваш броузер поддерживает апплеты Java).

Ваш броузер не поддерживает апплеты Java.



Основная страница.| Следующая страница.