Читаем Графические интерфейсы пользователя Java полностью

Когда текст в текстовой области становится больше, чем область просмотра, автоматически появляется полоса прокрутки, которая позволяет прокручивать текст вверх, вниз, вправо и влево.

При создании компонента TextArea указывается количество строк и столбцов видимой области текста.

Компонент TextField позволяет пользователю редактировать одну строку текста.



Когда пользователь вводит символ в текстовое поле, в поле отправляется событие нажатия клавиши.

Событие нажатия клавиши передается зарегистрированному слушателю KeyListener.

Также можно обрабатывать событие ActionEvent, которое запускается нажатием клавиши enter.

В этом примере, после ввода пароля и нажатия клавиши enter, текст одного и другого поля будут выведены в метку.

При создании поля можно указать количество видимых символов.

Метод setEchoCharacter указывает символ, который будет отображаться вместо символов, вводимых пользователем.

Этот метод используется для ввода паролей.

Обычно, окно верхнего уровня имеет связанную с ним панель меню.



Эта панель меню состоит из различных вариантов меню, доступных конечному пользователю.

Для создания меню, пакет java.awt предоставляет четыре основных класса – MenuBar, Menu, MenuItem и CheckboxMenuItem.

Все эти четыре класса не являются компонентами AWT, поскольку они не являются подклассами класса Component.

На самом деле, они являются подклассами класса MenuComponent, который никак не связан в иерархии с классом Component.

Панель меню MenuBar содержит само меню.



MenuBar добавляется к Frame с помощью метода setMenuBar.

По умолчанию, панель меню добавляется сверху окна Frame.

MenuBar не может быть добавлена к другим сторонам окна.

Меню Menu содержит пункты меню.

Меню добавляется в панель меню с помощью метода add.

В меню можно добавить подменю.

Элемент MenuItem отображает опцию, которую может выбрать пользователь.

Элементы меню добавляются в меню с помощью метода addMenuItem.

Между пунктами меню может быть добавлен разделитель с помощью метода addSeparator.

Элемент CheckboxMenuItem отличается от элемента MenuItem тем, что он отображается вместе с флажком.

В этом примере сначала мы создаем панель меню.

Затем создаем меню.

Далее создаем элементы меню и присоединяем к ним слушателей событий.

Метод setActionCommand устанавливает имя команды для события действия, которое генерируется этим пунктом меню.

По умолчанию для команды действия, имя устанавливается как метка элемента меню.

Затем элемент меню добавляется в меню.

Меню добавляется в панель меню.

А панель меню устанавливается для окна верхнего уровня.

Всплывающее меню PopupMenu представляет собой меню, которое можно динамически показывать в указанной позиции внутри компонента.



Для этого класс PopupMenu предоставляет метод show, который в качестве аргумента получает компонент, в котором отображается всплывающее меню, и координаты позиции для отображения меню.

В этом примере мы создаем всплывающее меню.

И в слушателе клика мыши панели, показываем всплывающее меню.

Компонент Canvas


Компонент Canvas представляет собой прямоугольную область, где приложение может рисовать что-либо, или может служить основой для пользовательского компонента, который не содержит другой компонент, например, кнопка с изображением.



Для использования Canvas создается класс, расширяющий Canvas, и переопределяется метод paint, отвечающий за отрисовку холста.

Этот метод автоматически вызывается средой выполнения при создании объекта класса, и получает в качестве аргумента объект Graphics.

Класс Graphics обеспечивает основу для всех графических операций в AWT.

Он играет две разные, но связанные роли.

Во-первых, это графический контекст.

Графический контекст – это информация, которая влияет на операции рисования.

Эта информация включает в себя цвета фона и переднего плана, шрифт, а также расположение и размеры отсекающего прямоугольника – область компонента, в котором можно рисовать графику.

Во-вторых, класс Graphics предоставляет методы для рисования простых геометрических фигур, текста и изображений.

Так как класс Graphics является абстрактным базовым классом, он не может быть создан непосредственно.

Экземпляр Graphics создается при создании компонента и передается в качестве аргумента методам update и paint компонента.

При использовании класса Graphics, фактическая работа выполняется конкретными его реализациями, которые тесно связаны с конкретной платформой.

Виртуальная машина Java предоставляет необходимые конкретные классы для вашей среды.

Вам не нужно беспокоиться о классах, специфичных для платформы; как только у вас есть объект Graphics, вы можете вызывать все методы класса Graphics, и быть уверенными, что классы, специфичные для платформы, будут работать правильно, где бы ни работала ваша программа.

Класс Graphics позволяет нарисовать линию.



Закрасить цветом овал и прямоугольник.

Нарисовать строку текста и другое.

Также можно нарисовать изображение, которое можно получить с помощью инструмента Toolkit, который обеспечивает связь с нативной платформой.

Перейти на страницу:

Похожие книги

Programming with POSIX® Threads
Programming with POSIX® Threads

With this practical book, you will attain a solid understanding of threads and will discover how to put this powerful mode of programming to work in real-world applications. The primary advantage of threaded programming is that it enables your applications to accomplish more than one task at the same time by using the number-crunching power of multiprocessor parallelism and by automatically exploiting I/O concurrency in your code, even on a single processor machine. The result: applications that are faster, more responsive to users, and often easier to maintain. Threaded programming is particularly well suited to network programming where it helps alleviate the bottleneck of slow network I/O. This book offers an in-depth description of the IEEE operating system interface standard, POSIX (Portable Operating System Interface) threads, commonly called Pthreads. Written for experienced C programmers, but assuming no previous knowledge of threads, the book explains basic concepts such as asynchronous programming, the lifecycle of a thread, and synchronization. You then move to more advanced topics such as attributes objects, thread-specific data, and realtime scheduling. An entire chapter is devoted to "real code," with a look at barriers, read/write locks, the work queue manager, and how to utilize existing libraries. In addition, the book tackles one of the thorniest problems faced by thread programmers-debugging-with valuable suggestions on how to avoid code errors and performance problems from the outset. Numerous annotated examples are used to illustrate real-world concepts. A Pthreads mini-reference and a look at future standardization are also included.

David Butenhof

Программирование, программы, базы данных
Разработка ядра Linux
Разработка ядра Linux

В книге детально рассмотрены основные подсистемы и функции ядер Linux серии 2.6, включая особенности построения, реализации и соответствующие программны интерфейсы. Рассмотренные вопросы включают: планирование выполнения процессов, управление временем и таймеры ядра, интерфейс системных вызовов, особенности адресации и управления памятью, страничный кэш, подсистему VFS, механизмы синхронизации, проблемы переносимости и особенности отладки. Автор книги является разработчиком основных подсистем ядра Linux. Ядро рассматривается как с теоретической, так и с прикладной точек зрения, что может привлечь читателей различными интересами и потребностями.Книга может быть рекомендована как начинающим, так и опытным разработчикам программного обеспечения, а также в качестве дополнительных учебных материалов.

Роберт Лав

Программирование, программы, базы данных / Программирование / Книги по IT