Апплеты
Класс Applet
Метод Описание
1 2
void destroy() Освобождает все ресурсы, занятые апплетом.
Вызывается браузером непосредственно перед тем,
как апплет завершается.
Метод destroy() вызывается, когда среда
решает, что апплет должен быть полностью удален из
памяти. В этот момент следует освободить любые ре-
сурсы, которые апплет может использовать.
String Возвращает параметр, указанный в paramName.
getParameter(Str Если указанный параметр не найден, возвращается
ing paramName) null (пустой указатель)
Окончание табл. 1.1
1 2
void init() Вызывается, когда апплет начинает выполнение. Это
первый метод, который вызывается для любого
апплета. В нем необходимо инициализировать
переменные. Вызывается этот метод один раз в
течение времени выполнения апплета.
boolean Возвращает true, если апплет был запущен.
isActive() Возвращает false, если апплет был остановлен
Пример:
public void paint(Graphics g) {
g.drawLine(0, 0, 100, 100);
}
Пример:
public void paint(Graphics g) {
g.drawArc(0, 40, 70, 70, 0, 75);
g. fillArc (0, 40, 70, 70, 0, 75);
}
Работа с цветом
Работа с цветом поддерживается классом Color. В Color определено
несколько цветовых констант (например color.black), специфицирующих
ряд обычных цветов. Возможно также создание собственных цветов,
применением одного из цветовых конструкторов. Обычно используются
следующие его форматы:
Потоки
Многозадачность
анонимный класс
// Создание потока
Thread t = new Thread(new Runnable() {
public void run() {
System.out.println("Hello");
}
});
// Запуск потока
t.start();
Синхронизация
synchronized(Account)
{
if(Account.check(3000000))
Account.decrement(3000000);
}
Здесь синхронизация выполняется для объекта Account.
Блокировка потока
Синхронизированный поток, определенный как метод типа synchronized,
может переходить в заблокированное состояние автоматически при попытке
обращения к ресурсу, занятому другим синхронизированным методом, либо
при выполнении некоторых операций ввода или вывода. Однако в ряде
случаев полезно иметь более тонкие средства синхронизации, допускающие
явное использование по запросу приложения.
try
{
Thread.sleep(500);
}
catch (InterruptedException ee)
{
}
В этом примере внутри метода run определен цикл, вызывающий метод wait
без параметров. Каждый раз при очередном проходе цикла метод run
переводится в состояние ожидания до тех пор, пока другой поток не
выполнит извещение с помощью метода notify.
synchronized(STask)
{
STask.notify();
}
}
}
Пример 1.
import java.awt.*;
import java.applet.*;
import java.lang.Math.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.util.logging.Level;
import java.util.logging.Logger;
//создать класс апплета, который реализует интерфейс
Runnable
g.setColor(Color.blue);
g.fillOval(265, 450, 15, 15);
g.setColor(Color.black);
g.setColor(Color.blue);
g.fillOval(471, 450, 15, 15);
g.setColor(Color.black);
}
//класс ShapeRect реализующий интерфейс Runnable
class ShapeKoleso_1 implements Runnable{
Thread T;
double angle_a;
int x_Koleso_1,y_Koleso_1,w_Koleso_1,h_Koleso_1;
//координаты и размеры спицы
public ShapeKoleso_1(){ //конструктор
T = new Thread(this); //создание объекта Thread
//установление начальных координат спицы
angle_a=0.175;
x_Koleso_1=272;y_Koleso_1=456;w_Koleso_1=290;h_Koleso_1
=397;
T.start();//запуск потока (вызов метода run)
}
public void run(){ //метод run
for(;;){
angle_a+=0.175;
w_Koleso_1= (int) (x_Koleso_1 - 57 *
Math.cos(angle_a)) ; //изменение координаты спицы
h_Koleso_1= (int) (y_Koleso_1 - 57 *
Math.sin(angle_a));
try{
T.sleep(150); //приостановка работы потока на 150
миллисекунд
}
catch (InterruptedException e){}
}
}
}
class ShapeRect implements Runnable{
Thread T;
double angle_a;
int x_Rect,y_Rect,w_Rect,h_Rect; //координаты и размеры
педальки
public ShapeRect(){ //конструктор
T = new Thread(this); //создание объекта Thread
//установление начальных координат педальки
angle_a=0.175;
x_Rect=369;y_Rect=451;w_Rect=357;h_Rect=483;
T.start();//запуск потока (вызов метода run)
}
public void run(){ //метод run
for(;;){
angle_a+=0.175;
w_Rect= (int) (x_Rect - 34 * Math.cos(angle_a))
; //изменение координаты педальки
h_Rect= (int) (y_Rect - 34 *
Math.sin(angle_a));
try{
T.sleep(150); //приостановка работы потока на 150
миллисекунд
}
catch (InterruptedException e){}
}
}
}
Пример 2.
Разработать апплет с использованием многопоточности, изображающий
поэтапную схематическую прорисовку домика.
import java.applet.Applet;
import java.awt.*;
Контрольные вопросы
Список литературы:
1. www.studfiles.ru/preview/2854789/
2. ru.wiki2.org/wiki/Java-апплет
3. habrahabr.ru/post/164487/
4. wm-help.net/books-online/book/12462/12462-72.html
5. javalang.website/c14.html
6. libeldoc.bsuir.by/bitstream/123456789/549/1/Языки_...VA_Лаб_практ_Ч_
2.pdf
7. javac.at.ua/news/mnogopotochnost_java_ochen_ponjat...statja/2011-10-
24-14
8. www.studfiles.ru/preview/834380/
9. studopedia.org/8-213606.html
10. ru.wikipedia.org/wiki/Java-апплет
11. studopedia.net/14_60251_paket-AWT.html
12. studopedia.net/14_60254_mnogopotochnoe-programmirovanie.html
13. lomos.wen.ru/Shildt_Java2/