Иллюстрированный самоучитель по Java

       

Передача параметров


Передача параметров в апплет производится с помощью тегов <param>, располагаемых между открывающим тегом <appiet> и закрывающим тегом </appiet> в HTML-файле. В тегах <param> указывается название параметра

name

и его значение

value.

Передадим, например, в наш апплет Heiioworid параметры шрифта. В листинге 14.7 показан измененный файл HelloWorld.html.

Листинг 14.7.

Параметры для передачи в апплет

<html>

<head><title> Applet</title></head> 

<body>

Ниже выполняется апплет.<br>

<applet code = "HelloWorld.class" width = "400" height = "50"> 



<param name = "fontName" value = "Serif"> 

<param name = "fontStyle" value = "2"> 

<param name = "fontsize" value = "30"> 

</applet> 

</body> 

</html>

В апплете для приема каждого параметра надо воспользоваться методом getParameter (String name) класса Applet, Возвращающим строку типа String. В качестве аргумента этого метода задается значение параметра name в виде строки, причем здесь не различается регистр букв, а метод возвращает, значение параметра value тоже в виде строки.

Замечание по отладке

Операторы System.out.println(), обычно записываемые в апплет для отладки, выводят указанные в них аргументы в специальное окно браузера Java Console. Сначала надо установить возможность показа этого окна. В Internet Explorer это делается установкой флажка Java Console enabled выбором команды Tools | Internet Options | Advanced. После перезапуска IE в меню View появляется команда Java Console.

В листинге 14.8 показан переработанный апплет HelloWorld. В нем назначен белый фон, а шрифт устанавливается с параметрами, извлеченными из HTML-файла.

Листинг 14.8.

Апплет, принимающий параметры

import j ava.awt.*; 

import j ava.applet.*;

public class HelloWorld extends Applet{ public void init(){


setBackground(Color.white);

String font = "Serif";

int style = Font.PLAIN, size = 10;

font = getParameter("fontName");

style = Integer.parselnt(getParameter("fontStyle"));

size = Integer.parselnt(getParameter("fontsize"));

setFont(new Font(font, style, size));

}

public void paint(Graphics g){

g.drawstring("Hello, XXI century World!", 10, 30); 



}





Совет




Надеясь на то, что параметры будут заданы в HTML-файле, все-таки присвойте начальные значения переменным в апплете, как это сделано в листинге 14.8.

На рис. 14.4 показан работающий апплет.





Рис. 14.4.


Апплет с измененным шрифтом

Правила хорошего тона рекомендуют описать параметры, передаваемые ап-плету, в виде массива, каждый элемент которого — массив из трех строк, соответствующий одному параметру. Данная структура представляется в виде "имя", "тип", "описание". Для нашего примера можно написать:

String!][] pinfo = {

{"fontName", "String", "font name"},

{"fontStyle", "int", "font style"},

{"fontsize", "int", "font size"} 

};

Затем переопределяется метод getParameterinfoO, возвращающий указанный массив. Это пустой метод класса Applet. Любой объект, желающий узнать, что передать апплету, может вызвать этот метод. Для нашего примера переопределение выглядит так:

public String[][] getParameterlnfо(){

return pinfo;

}

Кроме того, правила хорошего тона предписывают переопределить метод getAppletinfо (), возвращающий строку, в которой записано имя автора, версия апплета и прочие сведения об апплете, которые вы хотите предоставить всем желающим. Например:

public String getAppletlnfo(){

return "MyApplet v.1.5 P.S.Ivanov"; 

}

Посмотрим теперь, какие еще параметры можно задать в теге <appiet>.


Содержание раздела