Этап 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 выделены жирным шрифтом