
- •9. Библиотека .Net Framework и библиотеки языка Java
- •9.1. Приложение
- •9.2. Классы, объекты и элементы приложения
- •9.3. Простейшие приложения
- •9.4. Сообщения Windows, события и делегаты
- •9.4.1. Обработка событий мыши на языке c#
- •9.4.3. Обработка событий мыши на языке Java с использованием предопределённого обработчика mouseDown
- •9.4.4. Связь события с несколькими объектами на языке c#
- •Ещё раз о событиях и уведомлении в языке Java
- •9.5.1. Обработка событий элементов интерфейса пользователя в языке Java
- •Обработка событий мыши на языке Java, используя интерфейс MouseListener
- •9.5.3. Обработка событий мыши на языке Java, используя классы адаптеров
- •9.5.4. Обработка событий мыши на языке Java, используя внутренние классы адаптеров и анонимные классы
- •9.5.5. Обработка события закрытия окна
- •Графика
- •9.6.1. Графические объекты
- •Прямоугольник
- •Класс Pen
- •Класс SolidBrush
- •Класс Font
- •Класс Graphics
- •9.7. Событие Paint и его обработчик
- •9.8. Управляющие элементы
- •Класс Button
- •Классы TextBox и TextField
- •Классы UserControl и Panel
- •9.9. Дочерние окна
- •9.10. Исключения
9.8. Управляющие элементы
C# и C++/CLI. Управляющие элементы составляют основу при формировании пользовательского интерфейса приложения. Библиотека NET. Framework и пакеты языка Java включают десятки классов, используемых для создания объектов управления, а из них - элементов управления (controls). Элементы управления, такие как нажимаемые или селективные кнопки, панели списков, панели редактирования и другие, широко используются разработчиками оконных приложений. Они значительно облегчают интерфейс между пользователем и приложением.
В библиотеке NET. Framework все классы управляющих элементов порождаются из общего базового класса Control и поэтому позволяют однообразное их использование. Имеется специальный класс ControlCollection, обеспечивающий объединение управляющих элементов в одной коллекции.
Для связи управляющих элементов с конкретной коллекцией (т.е. объектом класса ControlCollection) используется свойство Controls управляющих элементов, наследуемое из класса Control. Получив посредством свойства Controls ссылку на коллекцию, можно воспользоваться его функциями (функциями класса ControlCollection), чтобы конкретный управляющий элемент добавить (Add) или удалить (Remove) из коллекции, или удалить все элементы (Clear) из коллекции, или же выявить (Contains) наличие указанного элемента в коллекции.
Из множества классов управляющих элементов библиотеки NET. Framework мы рассмотрим классы Button и TextBox.
Из класса Button создаётся так называемая нажимаемая кнопка.
Из класса TextBox создаётся панель редактирования, которая представляет собой простейший редактор с возможностью ввода и редактирования текста.
Java. В языке Java классы управляющих интерфейсных элементов порождаются из класса Component, содержащего их общие свойства и функции. Кнопка и панель редактирования создаются из классов Button и TextField. Эти и другие управляющие элементы добавляются в контейнер окна посредством функции add().
Рис.9.8.1 и 9.8.2 иллюстрируют наследование базовых классов классами Button, TextBox и TextField.
Рис. 9.8.1. Наследование базовых классов классами TextBox и Button в C# и C++/CLI
Рис. 9.8.2. Наследование базовых классов классами TextField и Button в Java
Позднее будут рассмотрены ещё классы UserControl и Panel, используемые для получения интересного интерфейсного элемента, представляющего в прикладном окне полотно-окно с богатой функциональностью.
Класс Button
C# и C++/CLI. Объект класса Button представляет нажимаемую кнопку. Объект создаётся конструктором:
Button ( );
В классе Control библиотеки .NET Framework среди более 50 событий объявлено событие Click:
C#.
public event EventHandler Click;
C++.NET.
public: event EventHandler^ Click;
На это событие мы будем подписывать обработчик, реагирующий на нажатие кнопки.
При применении класса Button, кроме его собственных свойств, можно воспользоваться наследуемыми свойствами класса Control. Наследуемое свойство Text , например, позволяет поместить текст в кнопку, а свойства Size и Location - определить размеры кнопки и координаты её верхнего левого угла.
Обратите внимание, что делегатом события кнопки является делегат EventHandler, определённый в библиотеке .NET Framework для различных событий. Об этом делегате, рекомендованном фирмой Microsoft для упорядочивания применения событий, упоминалось в разделе 7.5, а в примере 7.5.6 иллюстрировалось его применение.
Java. Добавление к кнопке предопределённого обработчика actionPerformed() класса ActionListener осуществляет функция addActionListener() класса Button. К кнопке можно применить множество свойств, наследуемых из класса Component, например, setLocation() и getLocation() при размещении кнопки и setSize() для установки размера.