Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_Po_Tp.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.44 Mб
Скачать

Приложение 6 java-файл апплета двойного назначения, реализующего интерфейс runnable, и html-документ со ссылкой на него

Данное приложение содержит код апплета двойного назначения, реализующего интерфейс Runnable, и html-файл со ссылкой на него. Данные тексты могут использоваться как шаблоны при создании класса апплетов, следует только предварительно изменить в них слово ИмяКласса на имя создаваемого класса.

Листинг Java-файла класса апплета:

import java.applet.*;

import java.awt.*;

import MainWndFrame; // импорт класса рамки (фрейма)

//=============================================

// Основной класс для апплета ИмяКласса

//=============================================

public class ИмяКласса extends Applet implements Runnable

{

// задача, которая будет одновременно с апплетом

private Thread m_Task = null;

// Признак режима работы программы:

// true/false - приложение/апплет

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

private boolean m_fStandAlone = false;

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

public static void main(String args[])

{// Создать рамку (фрейм) для апплета

MainWndFrame frame = new MainWndFrame("Title");

// До изменения размеров фрейма отобразить его.

// Это необходимо для того, чтобы метод insert()

// выдавал правильные значения

frame.show(); frame.hide();

frame.resize(frame.insets().left + frame.insets().right + 320,

frame.insets().top + frame.insets().bottom + 240);

// Создание объекта апплета, связывание апплета и фрейма

ИмяКласса applet_Combi = new ИмяКласса();

frame.add("Center", applet_Combi);

// Установление признака режима работы - приложение

applet_Combi.m_fStandAlone = true;

// Вызов методов ааплета для его запуска

applet_Combi.init();

applet_Combi.start();

// Отображение окна фрейма

frame.show();

}

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

public ИмяКласса()

{// Сделать: Добавьте сюда код конструктора

}

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

public String getAppletInfo()

{ return "Name: CombiApplet\r\n" +"";

}

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

public void init()

{ resize(320, 240);

// Сделать: Добавьте сюда код инициализации

}

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

public void destroy()

{// Сделать: Добавьте сюда код завершения работы апплета

}

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

public void paint(Graphics g)

{// Сделать: Добавьте сюда код перерисовки окна апплета

g.drawString("Running: " + Math.random(), 10, 20);

}

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

public void start()

{ // если задача еще не создана, апплет создает

// новую задачу как объект класса Thread

if (m_Task == null)

{ m_Task = new Thread(this); // создание задачи

m_Task.start(); // запуск задачи

}

// Сделать: Добавьте сюда код, который должен

// работать при запуске апплета

}

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

public void stop()

{ // когда пользователь покидает страницу,

// метод stop() класса Thread останавливает задачу

if (m_Task != null) // если задача была создана

{ m_Task.stop(); //остановка задачи

m_Task = null; // сброс ссылки на задачу

}

// Сделать: Добавьте сюда код, который должен

// работать при остановке апплета

}

// Метод, который работает в рамках отдельной задачи.

// Он вызывает периодическое обновление окна апплета

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

public void run()

{ // выполняем обновление окна в бесконечном цикле

while (true)

{ try

{ // вызов функции обновления

repaint();

// Сделать: Добавьте сюда код, который должен

// здесь работать в рамках задачи

//выполнение небольшой задержки

Thread.sleep(50);

}

catch (InterruptedException e)

{// Сделать: Добавьте сюда код, который должен

// здесь работать при генерации исключения

// если при выполнении задержки произошло

// исключение, останавливаем работу апплета

stop();

}

}

}

// Сделать: Добавьте сюда код, необходимый для работы

// создаваемого специализированного апплета

}

Листинг Java-файла класса фрейма для апплета:

import java.awt.*;

//============================================

// Этот класс действует как окно, в котором отображается апплет,

// когда он запускается как обычное приложение

//============================================

class MainWndFrame extends Frame

{

// Конструктор класса

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

public MainWndFrame(String str)

{ super (str);

// Сделать: Добавьте сюда код конструктора

}

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

public boolean handleEvent(Event evt)

{ switch (evt.id)

{// при закрытии окна завершается работа приложения

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

case Event.WINDOW_DESTROY:

// Сделать: Добавьте сюда код, который должен

// работать при остановке приложения

dispose(); // удаление окна

System.exit(0); // завершение приложение

return true;

default:

// передача сообщения на обработку

// методу базового класса

return super.handleEvent(evt);

}

}

}

Листинг HTML-файла:

<html>

<head>

<title> ИмяКласса </title>

</head>

<body>

<hr>

<applet

code= ИмяКласса.class

name= ИмяКласса

width=320

height=240 >

</applet>

<hr>

</body>

</html>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]