Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
нд, вызывая метод sleep:
try
{
  Thread.sleep(50);
}
catch (InterruptedException e)
{
  stop();
}
   Для обработки исключения InterruptedException, которое может возникнуть во 
время работы этого метода, мы предусмотрели блок try - catch. При возникновении 
указанного исключения работа задачи останавливается вызовом метода stop.
   Метод mouseEnter
   В предыдущем томе “Библиотеки системного программиста” мы рассказывали о 
методах mouseEnter и mouseExit. Первый из этих методов вызывается, когда в 
результате перемещения курсор мыши оказывается над окном аплета, а второе - 
когда курсор покидает окно аплета. Мы переопределили эти методы в своем аплете. 

   Когда курсор мыши оказывается над окном аплета, мы временно приостанавливаем 
работу задачи, вызывая метод suspend:
public boolean mouseEnter(Event evt, int x, int y)
{
  if (m_Rectangles != null)
  {
    m_Rectangles.suspend();
  }
  return true;
}
   Преостановленная задача не уничтожается. Ее работа может быть продолжена с 
помощью метода resume.
   Метод mouseExit
   Когда курсор мыши покидает окно аплета, вызывается метод mouseExit. Этот 
метод в нашем аплете возобновляет работу задачи, временно приостановленной 
методом suspend. Для этого используется метод resume, как это показано ниже: 
public boolean mouseExit(Event evt, int x, int y)
{
  if (m_Rectangles != null)
  {
    m_Rectangles.resume();
  }
  return true;
}
   Приложение MultiTask2
   Поставим теперь перед собой другую цель - создать аплет, запускающий на 
выполнение сразу две задачи. Наше следующее приложение MultiTask2 запускает 
одну задачу для рисования прямоугольников, а другую - для рисования закрашенных 
эллипсов (рис. 1.3).

Рис. 1.3. Окно аплета MultiTask2
   Расположение, размеры и цвет прямоугольников и эллипсов выбирается случайным 
образом.
   Исходные тексты приложения
   Исходный текст приложения вы найдете в листинге 1.5.
Листинг 1.5. Файл MultiTask2\ MultiTask2.java
// =========================================================
// Рисование прямоугольников и эллипсов
// в разных задачах
//
// (C) Фролов А.В, 1997
//
// E-mail: [email protected]
// WWW:    http://www.glasnet.ru/~frolov
//            или
//         http://www.dials.ccas.ru/frolov
// =========================================================
import java.applet.*;
import java.awt.*;

// =========================================================
// Основной класс аплета
// =========================================================
public class MultiTask2 extends Applet
{
  // Ссылка на задачу рисования прямоугольников
  DrawRectangles m_DrawRectThread = null;

  // Ссылка на задачу рисования эллипсов
  DrawEllipse m_DrawEllipseThread = null;

  // -------------------------------------------------------
  // getAppletInfo
  // Метод, возвращающей строку информации об аплете
  // -------------------------------------------------------
  public String getAppletInfo()
  {
    return "Name: MultiTask2\r\n" +
      "Author: Alexandr Frolov\r\n" +
      "E-mail: [email protected]" +
      "WWW:    http://www.g
 
<<-[Весь Текст]
Страница: из 275
 <<-