Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Листинг 6.4. Файл chapter6/TxtField/TxtField. java




Листинг 6.3. Файл chapter6/TxtField/TxtField. htinl

<HTML>

<НЕАD>

<TITLE>Get text</TITLE>

<SCRIPT LANGUAGE="JavaScript">

<!--

function getTextFromAoplet()

{

var szMsg="null";

GetForm.Comment.value = document.applets[0].str +

"\n" + ------------------------\n" +

document.applets[0].getAppletInfo();

}

//-->

</SCRIPT>

</HEAD>

<BODY>

<HR>

<APPLET

CODE=TxtField.class

NAME="TxtField"

ID=TxtField

WIDTH=320

HEIGHT=140>

</APPLET>

<HR>

<FORM NAME="GetForm">

<P><TEXTAREA NAME="Comment"

ROWS="7" COLS="45">

</TEXTAREA>

<P>

<INPUT TYPE="button" VALUE="Get applet info and text" onClick="getTextFromApplet();">

</FORM>

<A HREF="TxtField.java">The source.</A>

</BODY>

</HTML>

 

Для кнопки, розташованої у формі з ім'ям GetForm, визначений оброблювач події onClick:

 

onСlick="getTextFromApplet();"

 

Цей оброблювач викликає функцію getTextFromApplet, що виконує взаємодію з аплетом.

Функція getTextFromApplet обертається до аплету як до найпершого елемента масиву document. applets[0]:

 

GetForm.Comment.value = document.applets[0].str +

"\n" + "----------------------------\n" +

document. applets[0]. getAppletInfo();

 

Тут записується у властивість value многострочного поля GetForm. Comment значення перемінної str, до якого доданий роздільник із символів - і рядок опису аплета, отримана від методу getAppletInfo.

Вихідний текст аплета приведений у листинге 6.4.

 

// Однострочное текстове поле класу TextField

//

// (С) Фролов А.У, 1997, 1998

//

// E-mail: [email protected]

// WWW: http://www.glasnet.ru/~frolov

// або

// http://www.dials.ccas.ru/frolov

import Java.applet.*;

import java.awt.*;

public class TxtField extends Applet

{

// Створюємо посилання на об'єкти типу TextField

TextField txt;

// Створюємо посилання на об'єкти типу Button

Button btnGetText;

// Рядок для збереження введених даних

public String str;

//--------------------------------------------------

// getAppletInfo

// метод, що повертає рядок інформації про аплете

// -------------------------------------------------

public String getAppletInfo()

{

return "Name: TxtField\r\n" +

"Author: Alexandr Frolov\r\n" +

"E-mail: [email protected]\r\r." +

"WWM: htrp: //www.glasnet.ru/~frolov\r\n" +

"Created with Microsoft Visual J++ Version 1.0";

}

//--------------------------------------------------

// init

// Метод, що одержує керування при ініціалізації аплета

//--------------------------------------------------

public void init()

{

// Створюємо що редагується однострочное текстове поле

txt = new TextField("Введіть рядок тексту", 35);

// Створюємо кнопку, за допомогою якої можна получить

// уміст текстового поля

btnGetText = new Button ("Одержати рядок");

// Добавляємо текстове поле у вікно аплете

add(txt);

// Добавляємо кнопку у вікно аплете

add(btnGetText);

// Одержуємо і зберігаємо поточний текст,

// встановлений у поле

str = txt.getText();

// Встановлюємо цвіт фона

setBackground(Color.yellow);

}

//---------------------------------------------------

// action

// Метод визивається, коли користувач выполняет

// дія над компонентами

//---------------------------------------------------

public boolean action(Event evt, Object obj)

{

// Посилання на кнопку, від якої пришло сообщение

Button btn;

// Перевіряємо, що подія викликана кнопкою, а не

// іншим компонентом

if(evt.target instanceof Button)

{

// Одержуємо посилання на кнопку, що викликала подія

// Перевіряємо посилання на кнопку

if(evt.target.equals (btn.GetText))

{

// Одержуємо і зберігаємо поточний текст,

// встановлений у поле

str = txt.getText();

// Перемальовуємо вікно аплета

repaint();

}

// Якщо подія виникнула від невідомої кнопки,

// ми його не опрацьовуємо

else

{

return false;

}

// Повертаємо поизнак того, що ми опрацювали подію

return true;

}

// Якщо подія викликана не кнопкою,

// ми його не опрацьовуємо

return false;

}

//----------------------------------------------

// paint

// Метод paint, що виконує малювання у вікні аплета

//----------------------- ----------------------

public void paint(Graphics g)

{

// Визначаємо поточні розміри вікна аплета

Dimension.dimAppWndDimension = size();

// Вибираємо в контекст відображення чорний цвіт

g. setColor(Color. black);

}

 

Цей текст відтворений із невеличкими змінами з 30-го тому "Бібліотеки системного програміста". Зміни полягають у тому, що додано до визначення поля str ключове слово public:

 

public String str;

 

Це необхідно для того, щоб поле str було доступно зі сценарію JavaScript.

6.4. Динамічне завантаження аплетов Java

Ще одна корисна можливість, що з'являється при використанні сценаріїв JavaScript, - це динамічна перезагрузка аплетов Java у документах HTML, створених із використанням фреймов.

Ідея динамічного завантаження аплетов полягає в тому, що сценарій JavaScript динамічно створює документ HTML, у якому знаходиться оператор <APPLET>. Передаючи аплету в цьому документі різноманітні значення параметрів за допомогою оператора <PARAM>, сценарій JavaScript може управляти його роботою.

У файлі Index.html (листинг 6.5) знаходиться опис двох фреймов документа HTML. У лівому фрейме знаходиться форма з перемикачами і кнопкою, а в правом - аплет Java. Якщо включити один із перемикачів із назвами шрифтів, а потім натиснути кнопку, то у вікні аплета з'явиться назва шрифту. Ця назва буде оформлено з застосуванням шрифту, обраного вами в лівому фрейме.

 




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 322; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.022 сек.