
- •Содержание
- •Глава 1. Общие представления о языке Java 6
- •Глава 2. Объектно-ориентированное проектирование и платформа NetBeans 26
- •Глава 3. Примитивные типы данных и операторы для работы с ними 78
- •Глава 4. Работа с числами в языке Java 95
- •Глава 5. Управляющие конструкции 112
- •Глава 6. Начальные сведения об объектном программировании 128
- •Глава 7. Важнейшие объектные типы 175
- •Введение
- •Глава 1. Общие представления о языке Java
- •1.1. Java и другие языки программирования. Системное и прикладное программирование
- •1.2. Виртуальная Java-машина, байт-код, jit-компиляция. Категории программ, написанных на языке Java
- •1.3.Алфавит языка Java. Десятичные и шестнадцатеричные цифры и целые числа. Зарезервированные слова Алфавит языка Java
- •Десятичные и шестнадцатеричные цифры и целые числа
- •Зарезервированные слова языка Java
- •1.4. Управляющие последовательности. Символы Unicode. Специальные символы Управляющие последовательности
- •Простые специальные символы
- •Составные специальные символы
- •1.5.Идентификаторы. Переменные и типы. Примитивные и ссылочные типы
- •Краткие итоги по главе 1
- •Задания
- •Глава 2. Объектно-ориентированное проектирование и платформа NetBeans
- •2.1.Процедурное и объектно-ориентированное программирование. Инкапсуляция
- •2.2. Работа со ссылочными переменными. Сборка мусора
- •2.3. Проекты NetBeans. Пакеты. Уровни видимости классов. Импорт классов
- •2.4. Базовые пакеты и классы Java
- •2.5. Создание в NetBeans простейшего приложения Java
- •2.6. Компиляция файлов проекта и запуск приложения
- •2.7. Структура проекта NetBeans
- •2.8. Создание в NetBeans приложения Java с графическим интерфейсом
- •2.9. Редактор экранных форм
- •2.10. Внешний вид приложения
- •2.11. Ведение проектов
- •2.11. Редактирование меню экранной формы
- •2.12. Создание нового класса
- •2.13. Документирование исходного кода в Java
- •2.14. Основные компоненты пакетов swing и awt
- •2.15. Технологии Java и .Net
- •Краткие итоги по главе 2
- •Задания
- •Глава 3. Примитивные типы данных и операторы для работы с ними
- •3.1.Булевский (логический) тип
- •3.2.Целые типы, переменные, константы
- •3.3.Основные операторы для работы с целочисленными величинами
- •3.4.Вещественные типы и класс Math
- •3.5.Правила явного и автоматического преобразования типа при работе с числовыми величинами
- •3.6. Оболочечные классы. Упаковка (boxing) и распаковка (unboxing)
- •3.7.Приоритет операторов
- •3.8.Типы-перечисления (enum)
- •Краткие итоги по главе 3
- •Задания
- •Глава 4. Работа с числами в языке Java
- •4.1 Двоичное представление целых чисел Позиционные и непозиционные системы счисления
- •Двоичное представление положительных целых чисел
- •Двоичное представление отрицательных целых чисел. Дополнительный код
- •Проблемы целочисленной машинной арифметики
- •Шестнадцатеричное представление целых чисел и перевод из одной системы счисления в другую
- •4.2. Побитовые маски и сдвиги
- •4.3. Двоичное представление вещественных чисел Двоичные дроби
- •Мантисса и порядок числа
- •Стандарт ieee 754 представления чисел в формате с плавающей точкой*
- •Краткие итоги по главе 4
- •Задания
- •Глава 5. Управляющие конструкции Составной оператор
- •Условный оператор if
- •Оператор выбора switch
- •Условное выражение …?... : …
- •Оператор цикла for
- •Оператор цикла while – цикл с предусловием
- •Оператор цикла do...While – цикл с постусловием
- •Операторы прерывания continue, break, return, System.Exit
- •Краткие итоги по главе 5
- •Задания
- •Глава 6. Начальные сведения об объектном программировании
- •Наследование и полиморфизм. Uml-диаграммы
- •Функции. Модификаторы. Передача примитивных типов в функции
- •Локальные и глобальные переменные. Модификаторы доступа и правила видимости. Ссылка this
- •Передача ссылочных типов в функции. Проблема изменения ссылки внутри подпрограммы
- •Наследование. Суперклассы и подклассы. Переопределение методов
- •Наследование и правила видимости. Зарезервированное слово super
- •Статическое и динамическое связывание методов. Полиморфизм
- •Базовый класс Object
- •Конструкторы. Зарезервированные слова super и this. Блоки инициализации
- •Удаление неиспользуемых объектов и метод finalize. Проблема деструкторов для сложно устроенных объектов
- •Перегрузка методов
- •Правила совместимости ссылочных типов как основа использования полиморфного кода. Приведение и проверка типов
- •Рефакторинг
- •Reverse engineering – построение uml-диаграмм по разработанным классам
- •Краткие итоги по главе 6
- •Задания
- •Глава 7. Важнейшие объектные типы Массивы
- •Коллекции, списки, итераторы
- •Работа со строками в Java. Строки как объекты. Классы String, StringBuffer и StringBuilder
- •Работа с графикой
- •Исключительные ситуации Обработка исключительных ситуаций
- •Иерархия исключительных ситуаций
- •Объявление типа исключительной ситуации и оператор throw
- •Объявление метода, который может возбуждать исключительную ситуацию. Зарезервированное слово throws
- •Работа с файлами и папками
- •Краткие итоги по главе 7
- •Задания
- •Глава 8. Наследование: проблемы и альтернативы. Интерфейсы. Композиция Проблемы множественного наследования классов. Интерфейсы
- •Отличия интерфейсов от классов. Проблемы наследования интерфейсов
- •Пример на использование интерфейсов
- •Композиция как альтернатива множественному наследованию
- •Краткие итоги по главе 8
- •Задания
- •Глава 9. Дополнительные элементы объектного программирования на языке Java Потоки выполнения (threads) и синхронизация
- •Преимущества и проблемы при работе с потоками выполнения
- •Синхронизация по ресурсам и событиям
- •Класс Thread и интерфейс Runnable. Создание и запуск потока выполнения
- •Поля и методы, заданные в классе Thread
- •Подключение внешних библиотек dll.“Родные” (native) методы*
- •Краткие итоги по главе 9
- •Задания
- •Глава 10. Введение в сетевое программирование Краткая справка по языку html
- •Апплеты
- •Сервлеты
- •Технология jsp – Java Server Pages
- •Краткие итоги по главе 10
- •Задания
- •Глава 11. Встроенные классы Виды встроенных классов
- •Вложенные (nested) классы и интерфейсы
- •Внутренние (inner) классы
- •Локальные (local) классы
- •Анонимные (anonimous) классы и обработчики событий
- •Анонимные (anonimous) классы и слушатели событий (listeners)
- •Краткие итоги по главе 11
- •Задания
- •Глава 12. Компонентное программирование Компонентная архитектура JavaBeans
- •Мастер создания компонента в NetBeans
- •Пример создания компонента в NetBeans – панель с заголовком
- •Добавление в компонент новых свойств
- •Добавление в компонент новых событий
- •Краткие итоги по главе 12
- •Задания
- •Литература
- •Дополнительная литература
- •276 Курс подготовлен при поддержке Sun Microsystems
2.11. Редактирование меню экранной формы
Имеются случаи, когда процесс редактирования компонентов несколько отличается от описанного выше. Например, для главного меню экранной формы и для всплывающих меню.
Рассмотрим, как изменить текст пунктов меню формы с английского на русский. Если щёлкнуть мышью по какому-либо пункту (item) меню, в окне редактора свойств появятся значения свойств этого пункта. И мы легко сменим “File” на “Файл”, “Edit” на “Правка”, “Help” на “Справка”. Для того, чтобы без компиляции и запуска программы посмотреть, как будет выглядеть наша экранная форма, можно нажать иконку Preview Design (третья по счёту после закладки Design в окне редактирования экранной формы).
Но вложенные пункты меню, появляющиеся при выборе любого из пунктов верхнего уровня, так отредактировать невозможно. Они редактируются немного другим путём. При переходе в режим дизайна, а также в этом режиме при щелчке в области экранной формы, в левом нижнем окне (Inspector - “инспектор компонентов”) среды разработки появляется список компонентов экранной формы. Навигатор позволяет просматривать деревья вложенности различных элементов проекта.
Сама экранная форма является экземпляром класса JFrame (от Java Frame – “окно, кадр”, предоставляемое языком Java). В окне инспектора после схематического изображения компонента и имени соответствующей ему переменной в квадратных скобках указывается тип компонента. Развернём узел для нашей формы типа JFrame, а также вложенные узлы menuBar типа JMenuBar и fileMemu типа JMenu.
Окно инспектора компонентов Развёрнутое дерево вложенности
Мы увидим имена переменных, соответствующих всем пунктам меню, вложенным в файловое меню: openMenuItem, saveMenuItem, saveAsMenuItem, exitMenuItem. Щелчок по имени openMenuItem в окне инспектора компонентов приведёт к тому, что в окне редактирования свойств появятся значения свойств данного пункта меню. В поле Text заменим слово “Open” на “Открыть”. Затем перейдём на пункт saveMenuItem, и так далее. В результате получим экранную форму с пунктами меню на русском языке.
Рассмотрим теперь создание всплывающего меню, появляющегося при щелчке по какому-либо компоненту нашей формы. Качестве примера назначим всплывающее меню кнопке выхода. Для других компонентов процесс будет абсолютно аналогичным.
Новый узел jPopupMenu1 Содержание узла
В режиме дизайна (закладка Design) выберем мышью в палитре компонентов (окно Palette в правом верхнем окне) компонент JPopupMenu, и перетащим его на экранную форму. Он там не появится, но в окне инспектора компонентов в дереве Other Components возникнет новый узел jPopupMenu1[JPopupMenu]. Если щёлкнуть по узлу, окажется, что кроме самого компонента jPopupMenu1 в нём ничего нет.
Щёлкнем правой кнопкой мыши по этому узлу, и в появившемся всплывающем меню выберем Add/JMenuItem.
Создание нового пункта всплывающего меню
После этого в дереве jPopupMenu1 возникнет узел jMenuItem1[JMenuItem], и в редакторе свойств компонентов можно задать значение свойству Text данного компонента. Введём текст “Выйти из программы”.
Узел jMenuItem1 Свойства jMenuItem1
Далее уже известным нам способом зададим обработчик нажатия на этот пункт меню – выберем во всплывающем меню, возникающем при щелчке правой кнопкой мыши по имени jMenuItem1 в окне Inspector, пункт Events/ Action/ ActionPerformed. А в обработчике напишем оператор выхода из программы
System.exit(0);
Мы пока только создали всплывающее меню, которое доступно в нашей форме, но ещё не назначили его никакому компоненту. Для того, чтобы назначить меню jPopupMenu1 кнопке JButton1, выделим её, и в редакторе свойств компонентов в пункте componentPopupMenu нажмём мышью стрелку вниз, разворачивающую выпадающий список. Кроме значения <none>, назначенного по умолчанию этому свойству для каждого компонента, там имеется имя jPopupMenu1. Его мы и выберем.
Теперь всплывающее меню, состоящее из одного пункта “ Выйти из программы ”, появится при щелчке правой кнопкой мыши по кнопке. Добавление других пунктов меню и назначение им обработчиков событий проводится абсолютно так же, как для jMenuItem1.