Назад
Вперед
2.3. Аплет с параметрами
Пример демонстрирует способ передачи
параметров аплету Java из документа HTML. В своем
окне аплет отображает значения полученных
параметров.
Исходный текст примера
Архив проекта для Java WorkShop 2.0
Демонстрация
(ваш браузер должен уметь работать с аплетами
Java)
Немного теории
Для передачи параметров аплету необходимо
использовать оператор <PARAM>, расположив его в
документе HTML сразу после оператора <APPLET>. Ниже
мы показали фрагмент такого документа (реальные
параметры аплета мы заменили квадратными
скобками):
<applet
name=[] code=[] codebase=[]
width=[] height=[] align=[] alt=[]
>
<param name="Имя" value="Значение">
<param name="Имя" value="Значение">
. . .
<param name="Имя" value="Значение">
</applet>
Параметры name и value задают, соответственно, имя
параметра и его значение.
Для получения значения параметра используется
метод getParameter. Вызов этого метода обычно
располагается внутри метода init, получающего
управление на этапе инициализации аплета.
В качестве аргумента методу getParameter передается
имя параметра аплета. Если указанный параметр
определен в документе HTML, метод возвращает его
значение в виде объекта класса String, если нет -
возвращается значение null.
Для того чтобы другие аплеты могли получить
информацию о параметрах вашего аплета,
переопределите в нем метод getParameterInfo. Этот метод
должен возвращать массив объектов класса String
следующего вида:
String[][] paramInfo =
{
{
"Имя", "Класс", "Значение по умолчанию"
},
. . .
{
"Имя", "Класс", "Значение по умолчанию"
}
};
Здесь "Имя" - имя параметра, "Класс" -
его тип (например, String), а "Значение по
умолчанию" - это то значение, которое должно
присваиваться параметру аплета, не
определенному в документе HTML.
Описание примера
В нашем аплете мы переопределили методы init,
getAppletInfo, getParameterInfo и paint, а также предусмотрели
поля для хранения значений параметров аплета:
String parmTextString = "Param string";
String parmTextFont = "Helvetica";
String parmFontSize = "24";
int nFontSize = 24;
В поле parmTextString хранится значение параметра
TextString, в поле parmTextFont - значение параметра TextFont, а в
поле parmFontSize - значение параметра FontSize. Что же
касается поля nFontSize, то в нем тоже хранится
значение параметра FontSize, но не в текстовом, а в
цифровом виде.
Наш аплет отображает в своем окне текстовую
строку, передаваемую через параметр TextString, а
также значения всех других параметров. При этом в
контексте отображения устанавливается шрифт с
названием, заданным параметром TextFont, и размером
символов, указанным в параметре FontSize (рис. 1).
Рис. 1. В окне аплета отображаются значения
параметров аплета
Перейдем к описанию методов аплета.
Метод init
Метод init прежде всего получает значения всех
трех параметров, вызывая для этого метод getParameter:
String parm;
parm = getParameter("TextString");
if(parm != null)
parmTextString = parm;
parm = getParameter("TextFont");
if(parm != null)
parmTextFont = parm;
parm = getParameter("FontSize");
if(parm != null)
parmFontSize = parm;
Если какой-нибудь параметр не определен, метод
init не изменяет значение соответствующего поля,
заданное по умолчанию.
На следующем этапе текстовое значение
параметра аплета FontSize преобразуется в численное
и записывается в поле nFontSize:
try
{
Integer intVal =
new Integer(parmFontSize);
nFontSize = intVal.intValue();
}
catch(Exception ex)
{
}
В том случае, когда численный параметр указан
неверно, в процессе преобразования возникает
исключение. При этом метод init не изменяет
содержимое поля nFontSize, сохраняя в нем значение,
установленное по умолчанию. Таким образом мы
нейтрализуем возможную ошибку.
Последнее действие, выполняемое методом init -
установка цвета фона окна и цвета отображаемого
в нем текста:
setBackground(Color.yellow);
setForeground(Color.black);
Метод getAppletInfo
Метод getAppletInfo возвращает строку названия
аплета и не имеет никаких особенностей:
public String getAppletInfo()
{
return "Name: Get Parameter Applet";
}
Метод getParameterInfo
Метод getParameterInfo возвращает описание параметров
аплета в виде двухмерного массива строк:
public String[][] getParameterInfo()
{
String[][] paramInfo =
{
{
"TextString", "String", "Param string"
},
{
"TextFont", "String", "Helvetica"
},
{
"FontSize", "String", "24"
}
};
return paramInfo;
}
Для каждого параметра в этом массиве хранится
его имя, тип и значение по умолчанию.
Метод paint
Метод paint отображает значение параметров
аплета в его окне.
Поля yStart и yCurrent используются для организации
вывода в окно аплета в консольном режиме:
int yStart = 20;
int yCurrent = yStart;
Перове из них содержит координату Y первой
строки, а второе, смещение текущей строки
относительно верхней границы окна аплета.
Перед выводом строки в контексте отображения
устанавливается красный цвет фона, а также
выбирается шрифт:
g.setColor(Color.red);
g.setFont(new Font(
parmTextFont, Font.PLAIN, nFontSize));
Параметры шрифта определяются
соответствующими значениями, полученными через
параметры аплета.
Затем мы получаем метрики выбранного шрифта,
необходимые для вычисления смещения текущей
отображаемой строки:
FontMetrics fm = g.getFontMetrics();
Строки параметров рисуются в окне аплета
методом drawString, причем каждая новая строка
сдвигается на высоту символов шрифта, полученную
как fm.getHeight():
g.drawString("TextString: " +
parmTextString, 10, yCurrent);
yCurrent += fm.getHeight();
g.drawString("TextFont: " +
parmTextFont, 10, yCurrent);
yCurrent += fm.getHeight();
g.drawString("FontSize: " +
nFontSize, 10, yCurrent);
Назад Вперед |