Этап 7. Разработка специального объекта

Public void actionPerformed(ActionEvent aE)

{

switch (c.getSelectedIndex ( )) // Получить индекс списка

{

case 0: col= Color.blue;

break;

case 1: col= Color.green;

break;

case 2: col= Color.red;

break;

}

repaint ( ); // Перерисовать

}

 

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

public static void main ( )

{

User u= new User();

}

}

/*

Результат:

Появились прикладное окно с перемещающимися шарами и дочернее окно

с кнопкой и элементом списка. При нажатии на кнопку можно приостанавливать или возобновлять

движение шаров. Выделив в списке цвет, можно изменить цвет шаров.

*/

 

 

В последнем этапе разработаем класс SpecialBall специального объекта, добавим его объект в класс, содержащий массив обычных объектов. В соответствии с заданием этот специальный объект должен быть представлен в виде желтой окружности в левом верхнем углу прикладного окна, и эта оеружность вспыхивает (увеличивается ширина круга) при отталкивании шаров от стенок прикладного окна. Создадим специальный объект в теле конструктора класса Balls, подписав событие или уведомление каждого обычного объекта с обработчиком этого специального объекта. Добавим в дочернее окно управляющий элемент-список для выбора одного из трёх цветов шаров. Диаграмма классов и реализация последнего этапа представлены на рис. 5.3.7.1 и в примерах 5.3.7.1 и 5.3.7.2.

Рис. 5.3.7.1. Диаграмма классов Balls–приложения седьмого этапа

 

 

Пример 5.3.7.1. Реализация седьмого этапа разработки Balls–приложения на языке C#.

////////////////////

// C# File BallsCs7.cs

// Файл BallsCs7.cs полностью включает файл BallsCs6.cs, дополнив его новым

// классом SpecialBall специального объекта. Модифицирован класс Ball – в нём

// объявлено новое событие evSpecial. В классе Balls создан специальный объект,

// обработчик HandlerEvSpecial которого подписан на события всех обычных

// объектов. Изменения файла BallsCs6.cs выделены жирным шрифтом

// Изменения файла BallsCs6.cs выделены жирным шрифтом