ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 08.11.2023

Просмотров: 141

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Скелет программы (для обработки событий клавиатуры) представлен ниже:

class KeyTest implements KeyListener

{

...

addKeyListener(имя-объекта-KeyListener);

...

public void keyPressed(KeyEvent e)

{

// Обработка события нажатия клавиши или пусто

}

public void keyReleased(KeyEvent e)

{

// Обработка события отпускания клавиши или пусто

}

public void keyTyped(KeyEvent e)

{

// Обработка ввода символа или пусто

}

Как видно из предыдущего примера, необходимо описывать метод, даже если он не используется. Для того, чтобы в классе можно было описывать только те методы, которые необходимо, в JDK были введены специальные абстрактные классы – адаптеры, содержащие объявления тех же методов, что и соответствующие блоки прослушивания. Имена этих классов формируются так же, как и блоков прослушивания, только вместо суффикса Listener в них используется суффикс Adapter, например, KeyAdapter или MouseAdapter.

Если создать внутри данного класса подкласс, расширяющий класс соответствующего адаптера (например, подкласс myKeyAdapter, расширяющий класс KeyAdapter), то внутри него можно переопределить только те методы адаптера, которые необходимо использовать. В этом случае в соответствующем методе addXXXX в качестве параметра можно задать экземпляр созданного подкласса, например,

addKeyListener(new myKeyAdapter());

Более компактной записью, которая часто используется программистами на Java, является непосредственное определение безымянного внутреннего класса в параметре соответствующего метода addXXXX, например:

addKeyListener

(

new KeyAdapter()

{

// Описание методов класса KeyAdapter

}

);


3.4. Программирование графических приложений в NetBeans IDE 6.1

3.4.1. Создание графического приложения


Для создания графического приложения необходимо открыть новый проект с помощью команды New Project меню File или кнопки на панели инструментов. В окне в поле Categories выбирается пункт General, а в поле Projects – пункт Java Application. После нажатия кнопки Next в окне New Java Application в поле Project Name задается имя проекта, а в поле Project Location – путь к папке проекта. Переключатель Set as Main Project должен быть включен, а переключатель Create Main Class – выключен. После нажатия кнопки Finish создается новый проект.

В контекстном меню нового проекта выберите команду New и в меню этой команды выберите команду JFrame Form. В поле Class Name окна New JFrame Form задайте имя класса графической формы и нажмите кнопку Finish.

3.4.2. Проектирование графического приложения


После создания графической формы в панели инструментов окна редактора появляются кнопки Source (для просмотра и редактирования исходного текста программы) и Design (создание и редактирование формы в графическом режиме). В левой части экрана появляется окно Palette (Палитра) с компонентами Swing и окно Properties (Свойства) (если этих окон нет на экране, их можно вывести с помощью команд Palette и Properties меню Window).

В окне Properties выводятся свойства выделенного компонента Swing (в начале это свойства компонента JForm). Для компонента JForm можно задать свойство title (наименование окна графического приложения) и изменить свойство background (цвет фона окна).



Проектирование графического приложения в среде NetBeans IDE 6.1 включает в себя следующие этапы:

  • перетаскивание (вставка) требуемого графического компонента из окна Palette в тот компонент, в котором будет выводиться данный компонент, т.е. родительский компонент (первоначально родительским компонентом является JForm);

  • выполнение операций над компонентами;

  • изменение свойств графического компонента;

  • задание (если необходимо) событий и их обработки для графического компонента;

  • задание (если необходимо) дополнительного программного кода для графического компонента.

3.4.2.1. Вставка графических компонент в окно приложения


Результат вставки графических компонент в окно приложения приведен на рис. 3.4.1.

Рис. 3.4.1. Окно проектирования графического приложения
При этом в окне Inspector (Инспектор) будет выводиться иерархическая структура графических компонентов приложения (рис. 3.4.2).

Рис. 3.4.2. Иерархическая структура графических компонент

для окна приложения на рис. 3.4.1
При перетаскивании графический компонент будет либо в том месте окна, куда он помещен («свободное» проектирование, как для содержимого панелей jPanel1 и jPanel2), либо в соответствии с заданным менеджером компоновки (как для содержимого панели jPanel3). Для выбора менеджера компоновки надо выделить компонент-контейнер (например, JForm или JPanel) и в контекстом меню задать в команде Set Layout наименование менеджера компоновки для этого компонента.

При вставке компонент в окно приложения им автоматически присваиваются имена (например, JMenu1, JMenu2 и т.д.). Имя графического компонента можно изменить, если вызвать контекстное меню для этого компонента в окне проектирования или в окне и в диалоговом окне команды Change Variable Name задать новое имя компонента.

Отредактировать текст для компонентов с текстом (например, JTextField или JButton) можно в диалоговом окне команды Edit
Text контекстного меню.

Предварительный просмотр окна приложения можно выполнить с помощью кнопки Preview Design на панели инструментов проектирования.

3.4.2.2. Выполнение операций над компонентами


При использовании «свободного» проектирования графические компоненты можно выравнивать относительно друг друга. Для этого эти компоненты необходимо выделить, щелкая по ним мышью при нажатой клавише Ctrl, а затем применить к ним одну или несколько операций выравнивания с помощью команд подменю команды Align контекстного меню, либо с помощью кнопок на панели инструментов.

Команда Left to Column или кнопка выравнивает компоненты слева, а команда Right to Column или кнопка справа по отношению к вертикальной линии (столбцу).

Команда Top to Row или кнопка выравнивает компоненты вверх, а команда Bottom to Row или кнопка вниз по отношению к горизонтальной линии (строке).

Команда Center horizontally или кнопка выравнивает компоненты а команда Center vertically или кнопка по центру вертикально.

Привязка компонент к границам контейнера задается с помощью команд подменю команды Anchor контекстного меню.

Выделенные компоненты можно сделать одинакового размера, если в команде Same Size контекстного меню включить один или оба переключателя (Same Width и Same Height). Для возврата к размеру по умолчанию для выделенных компонент надо выполнить команду
Set Default Size контекстного меню.

Для возможности автоматического изменения размеров выделенных компонент при выполнении приложения надо либо нажать кнопки и/или для изменений по горизонтали и вертикали, либо включить один или оба переключателя (Horizontal и Vertical) в команде Auto Resizing контекстного меню.

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

С помощью команд контекстного меню Move Up и Move Down контекстного меню можно переместить компоненты вверх или вниз по иерархической структуре. В окне Inspector переместить компоненты можно, просто перетащив их на новое место.

Вырезать, скопировать, вставить или удалить выделенные компоненты можно с помощью команд Cut, Copy и Delete контекстного меню. Вставка вырезанных или скопированных компонент в то место, где находится курсор мыши, выполняется с помощью команды Paste (вставленный компонент будет иметь те же свойства, что и оригинальный компонент, но при этом компоненту будет присвоено новое имя).

3.4.2.3. Изменение свойств компонент


После вставки компонента ему можно изменить свойства. Эта операция выполняется для выделенного компонента в окне Properties.

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

Для каждого компонента определен свой набор свойств. Для вывода подсказки для свойства надо навести на ее наименование курсор мыши, либо щелкнуть мышью по наименованию свойства (при этом внизу окна выводится текст подсказки). Наиболее часто используемые свойства для разных групп компонент приведены в табл. 3.4.1.

Таблица 3.4.1. Наиболее часто используемые свойства для разных групп компонент

Свойство

Группа компонент

Назначение

background

Практически все компоненты

Установка цвета фона.

font

Компоненты, содержащие текст

Установка шрифта для текста.

text

Компоненты, содержащие текст

Задание текста, выводимого в компоненте.

foreground

Компоненты, содержащие текст

Задание цвета текста, выводимого в компоненте.

horizontalAlignment

Компоненты, содержащие текст

Задает выравнивание текста в компоненте.

toolTipText

Все компоненты

Задание текста подсказки, выводимого при наведении курсора мыши на компонент.

border

Практически все компоненты

Задание вида и параметров рамки вокруг компонента.

buttonGroup

JCheckBox, JRadioButton, JButton

Задание группы, к которой относится компонент.

selected

JCheckBox, JRadioButton

Задание выбора для компонента.

icon

JLabel, JButton

Задание изображения для компонента.

model

JComboBox, JList, JSpinner

Задание списка пунктов (значений) для компонента с возможностью добавления, редактирования и удаления пунктов.

selectedItem

JComboBox, JList, JSpinner

Задание предварительно выбранного элемента в списке.

editable

JComboBox, JTextField, JTextArea,

JTextPane

Задание возможности редактирования содержимого компонента.

columns, rows

JTextArea

Задание количества столбцов и строк в текстовой области.

selectionMode

JList

Задание возможности множественного выбора в списке.

maximum, minimum

JSlider

Задание максимального и минимального значений для ползунка.

majorTickSpacing,

minorTickSpacing

JSlider

Задание количества единиц в большой и малой рисках шкалы ползунка.

value

JSlider

Задание начального значения для ползунка.

dividerLocation,

dividerSize,

orientation

JSplitPane

Задание местоположения разделителя, его размера (толщины) и ориентации (горизонтальной или вертикальной).

oneTouchExpandable

JSplitPane

Задание возможности управления выводом расщепленных панелей.

caretColor

caretPosition

JTextPane

Задание цвета и позиции курсора в окне панели.