Передача параметров в апплет
Команда APPLET в HTML позволяет передавать параметры апплету. Для получения параметра в программе на JAVA используется метод getParameter("name parameter") , в котором указывается имя параметра, приведенное в HTML.
Метод getParameter() возвращает значение параметров в формате String, поэтому числовые и булевы переменные необходимо преобразовать из строкового представления в нужный формат.
Прежде всего рассмотрим HTML - команду APPLET - каким образом задаются параметры. Мы задаем 5 параметров следующих форматов:
NameBox - строковый,
WidthBox - типа int,
AreaBox - типа long,
floatBox - с плавающей точкой,
activeBox - булевый.
<HTML>
<TITLE>
IT IS HTML TO APPLET MYPARAMETERS
</TITLE>
<APPLET code="MyParameters" width=300 height=300>
<param name=NameBox value=Parameter>
<param name=WidthBox value=555>
<param name=AreaBox value=12345678>
<param name=floatBox value=3.141592>
<param name=activeBox value=true>
</APPLET>
</HTML>
Рассмотрим апплет MyParameters, использующий эти параметры.
//------------------------------------------------------------
// Program : MyParameters
//------------------------------------------------------------
// Author : Katz Yakov
//------------------------------------------------------------
// Date : 17/01/98
//------------------------------------------------------------
import java.awt.*;
import java.applet.*;
// Создаем класс MyParameters
public class MyParameters extends Applet {
// Обьявляем переменные для приема параметров
String NameBox1 = new String();
int WidthBox1;
long AreaBox1;
float floatBox1;
boolean activeBox1;
// Прием параметров в методе start ()
public void start () {
String param = new String();
// Прем первого - строкового параметра
NameBox1 = getParameter("NameBox");
if (NameBox1 == null)
NameBox1 = "Not Found";
// Прем второго - параметра типа int
// Функция parseInt переводит из строкового
// формата в целочисленный
// Обработка исключительной ситуации
// связана с прерыванием, которое может
// возникнуть в этой функции,
// когда перевод невозможен
param = getParameter("WidthBox");
try {
if (param != null)
WidthBox1 = Integer.parseInt(param);
else
WidthBox1 = 0;
} catch (NumberFormatException e)
{ WidthBox1 = -1; }
// Прем третьего - параметра типа long
// Функция parseLong переводит из строкового
// формата в целочисленный
param = getParameter("AreaBox");
try {
if (param != null)
AreaBox1 = Long.parseLong(param);
else
AreaBox1 = 0;
} catch (NumberFormatException e)
{ AreaBox1 = -1; }
// Прем четвертого - параметра типа float
// Функция valueOf переводит из строкового
// формата в формат с плавающей точкой
param = getParameter("floatBox");
try {
if (param != null)
floatBox1 = Float.valueOf(param).floatValue();
else
floatBox1 = 0;
} catch (NumberFormatException e)
{ floatBox1 = -1; }
// Прем пятого - параметра логического типа
param = getParameter("activeBox");
if (param != null)
activeBox1 = Boolean.valueOf(param).booleanValue();
}
// Вывод в апплет значений полученных
// и преобразованных параметров
public void paint (Graphics dr) {
dr.drawString ("NameBox : " + NameBox1 , 20, 20);
dr.drawString ("WidthBox : " + WidthBox1 , 20, 70);
dr.drawString ("AreaBox : " + AreaBox1 , 20, 120);
dr.drawString ("floatBox : " + floatBox1 , 20, 170);
dr.drawString ("activeBox : " + activeBox1 , 20, 220);
}
}
Апплет MyParameters выглядит следующим образом:
Если Вы работаете в Internet Explorer, то Вы видите в окне апплета значение заданных параметров, а если Вы в Netscape Navigator - Вы видите нули и испытываете сильное желание послать или меня, или Java, или Netscape Navigator или свой компьютер и Вам страшно жалко свою напрасно погубленную молодость.
Наверное, надо до обещанной 5 - й версии Netscape Navigator поработать в Internet Explorer. У кого другое мнение - напишите.