// При инициализации апплета создаем элементы управления
public void init(){
// Устанавливаем абсолютное позиционирование
// компонентов внутри апплета
setLayout(null);
// Установка оранжевого фона для апплета
setBackground(Color.orange);
// Создание метки и текстового поля для коэф. a
//Создание метки
Label l1 = new Label("Введите a: ");
//Установка границ метки
l1.setBounds(20, 20, 180, 20);
// Добавление метки на рабочее поле аплета
add(l1);
// Создание текстового поля для а
t1 = new TextField(10);
//Установка границ текстового поля
t1.setBounds(20, 40, 100, 20);
// Добавление текстового поля на рабочее поле аплета
add(t1);
// Создание метки и текстового поля для коэф. b
Label l2 = new Label("Введите b: ");
l2.setBounds(20, 60, 180, 20);
add(l2);
t2 = new TextField(10);
t2.setBounds(20, 80, 100, 20);
add(t2);
// Создание метки и текстового поля для коэф. с
Label l3 = new Label("Введите c: ");
l3.setBounds(20, 100, 180, 20);
add(l3);
t3 = new TextField(10);
t3.setBounds(20, 120, 100, 20);
add(t3);
// Создание кнопки
b1 = new Button("Решить");
b1.setBounds(20, 170, 160, 20);
add(b1);
}//конец init()
// Метод вывода графики в апплете
public void paint(Graphics g){
// Вывод строк
g.drawString("Ответ: ", 10, 220);
g.drawString(Sa, 90, 220); }
// Обработка реакции на нажатие кнопки Решить
public boolean action(Event evt, Object arg){
if(arg == "Решить"){
// Объявление и инициализация переменных
double a,b,c,d,m,eps = 1e-8; int i;
String s1a="";
String s1=t1.getText();
String s2=t2.getText();
String s3=t3.getText();
a = Double.valueOf(s1).doubleValue();
b = Double.valueOf(s2).doubleValue();
c = Double.valueOf(s3).doubleValue();
// Решение уравнения
if(Math.abs(a)<eps)
if(Math.abs(b)<eps)
if(Math.abs(c)<eps)
s1a="any solution";
Else
s1a="no solution";
Else
s1a="x1 = x2 = " + (-c/b);
else {
if((d = b*b - 4*a*c)<0){
d=0.5*Math.sqrt(-d)/a; a=-0.5*b/a;
s1a="x1 ="+a+" + i" +d+ ",x2= "+a+" - i"+d;
}
else {
d=0.5*Math.sqrt(d)/a; a=-0.5*b/a;
s1a="x1 = "+(a+d)+", x2 = "+(a-d);
}
}
Sa=s1a;
// Перерисовка окна апплета
repaint();
return true;
}
Else
return false;
}
}
Апплет начинается с операторов import. Первый импортирует AWT классы, так как апплеты взаимодействует с пользователем через абстрактный оконный интерфейс, а не через классы консольного ввода/вывода. Второй оператор import импортирует пакет java.applet, который содержит класс Applet. Создаваемый пользователь апплет должен быть подклассом этого класса. Третий оператор подключает библиотеку обработки событий.
С помощью строки объявления abc2 extends Appletсообщается, что класс abc2 наследует все переменные и методы более общего класса Applet. Нужно добавить к нему только нужный код.
С помощью апплета в графическую область Web-браузера можно выводить любую информацию. При перекрытии окна браузера другими окнами или его свертывании в пиктограмму это становится невозможным. Когда окно браузера вновь появляется на экране, апплет должен перерисовать свое содержимое. Это осуществляется с помощью метода repaint().
Доступ к графическому пространству осуществляется с помощью объекта Graphics, который нужно передать в качестве параметра методу paint(). Обычно для вывода строки в графическом режиме используется метод drawString(). Этому методу нужно передать три параметра - строку, которую нужно вывести, и координаты х и у, определяющие позицию начала этой строки.
Большинство пользовательских событий, возникающих в апплете, можно обрабатывать, переопределяя метод action(). Этот метод имеет следующий вид:
public boolean action}(Event evt, Object arg)
Когда пользователь щелкает по одной из кнопок апплета, вызывается метод action(). Так как arg - это тестовая метка нажатой кнопки, то можно определить, какую кнопку выбрал пользователь.
Метод action() возвращает значение false, указывающее системе Java, что событие еще не обработано. Пользователь должен доопределить этот метод в своей прикладной программе.
Апплеты Java выполняются в среде Java-совместимого браузера. Для выполнения апплета в Web-броузере можно записать короткий текстовый файл в формате языка HTML, который содержит тег <applet>.
Вид HTML-файла:
<HTML> <body>
<applet code="abc2.class" width=200 height=60>
</applet>
</body> </HTML>
Для тега <applet> обязательны атрибуты code, width и height. Параметры width и height определяют размеры окна апплета (200 и 60). После создания файла с расширением .html, можно запустить этот файл, что приведет к выполнению апплета.
Укажем последовательность операций, выполняющихся при загрузке апплета.
1. Загружается HTML-файл.
2. Обнаруживается тег <applet>.
3. Файл класса, указанного в <applet>, загружается с сервера.
4. Распознаются и загружаются классы, на которые ссылается класс applet.
5. Класс applet вызывает методы init() и start().
6. Если все происходит нормально, апплет отображается в окне броузера (или вне его, если он использует собственный кадр - frame).
Процедура быстрой разработки апплета включает три шага:
1. Редактирование исходного файла Java.
2. Компиляция программы.
3. Запуск программы просмотра апплетов со спецификацией имени исходного файла апплета в ее аргументе. Встретив в комментарии тег <applet> утилита просмотра выполнит его.
Итак, ключевые моменты создания апплета:
· Апплеты не нуждаются в методе main().
· Апплеты должны выполняться броузером, поддержающим Java.