Лабораторная работа: Сериализация объектов

send.add(disk);

send.add (new CheckboxMenuItem («Архив»));

и т.д.

Все, что получилось в результате перечисленных действий, показано на рисунке 1.

Многие графические оболочки, но не MS Windows, позволяют создавать отсоединяемые(tear-off) меню, которые можно перемещать по экрану. Это указывается в конструкторе

Menu (String label, boolean tearOff)

Если tearoff == true и графическая оболочка умеет создавать отсоединяемое меню, то оно будет создано. В противном случае этот аргумент просто игнорируется.

Наконец, надо назначить действия командам меню. Команды меню типа MenuItem порождают события типа ActionEvent, поэтому нужно присоединить к ним объект класса-слушателя как к обычным компонентам, записав что-то вроде

create.addActionListener (new SomeActionEventHandler())

open.addActionListener (new AnotherActionEventHandler())

Пункты типа CheckboxMenuItem порождают события типа ItemEvent, поэтому надо обращаться к объекту-слушателю этого события:

disk.addItemListener (new SomeItemEventHandler())

Очень часто действия, записанные в командах меню, вызываются не только щелчком кнопки мыши, но и «горячими» клавишами-акселераторами (shortcut), действующими чаще всего при нажатой клавише <Ctrl>. На экране в пунктах меню, которым назначены «горячие» клавиши, появляются подсказки вида Ctrl+N, Ctrl+O, как на рисунке 1. «Горячая» клавиша определяется объектом класса MenuShortcut и указывается в его конструкторе константой класса KeyEvent, например:

MenuShortcut keyCreate = new MenuShortcut (KeyEvent.VK_N);

После этого «горячей» будет комбинация клавиш <Ctrl>+<N>. Затем полученный объект указывается в конструкторе класса MenuItem:

MenuItem create = new MenuItem («Создать», keyCreate);

Нажатие <Ctrl>+<N> будет вызывать окно создания. Эти действия, разумеется, можно совместить, например,

MenuItem open = new Menultern («Открыть…»,

new – MenuShortcut (KeyEvent.VK_O));

Можно добавить еще нажатие клавиши <Shift>. Действие пункта меню будет вызываться нажатием комбинации клавиш <Shift>+<Ctrl>+<X>, если воспользоваться вторым конструктором:

MenuShortcut (int key, boolean useShift)

С аргументом useShift == true.

Пример создания меню

import java.awt.*;

import java.awt.event.*;

public class MenuScribble extends Frame {

public MenuScribble (String s) {

super(s);

MenuBar mb = new MenuBar();

setMenuBar(mb);

К-во Просмотров: 396
Бесплатно скачать Лабораторная работа: Сериализация объектов