Rambler's Top100IT • archiv

rus / eng | Логин | Добавить отзыв | Печать | Почта | Клуб




Инструменты


Создание графического web-приложения в VisualAge for Java 3.5. Часть 4

 
(Николай Зайкин)

Нажмите на палитре Swing кнопку выбора произвольного Java Bean Choose Bean, c помощью кнопки Browse выберите класс ButtonGroup и введите имя бина OptionsButtonGroup:
Добавление Java Bean
Нажмите Ok и поместите невизуальный бин на "free-form surface" - основном поле визуального редактора, но не на панель приложения, так как бин невизуальный. Ваш экран должен выглядеть приблизительно так:
Размещение элементов в визуальном редакторе
Теперь надо добавить флажки в новосозданную ButtonGroup. Делать это уже будем не в визуальном редакторе - пришло время поработать руками :)). Нажмите меню Bean -> Save Bean, перейдите на закладку Members (вторая справа :)).

Поиск Чтобы долго не плутать по коду, нажмите F4, введите в поле поиска "ButtonGroup", установите флажки на Type, References, Hierarchy -> MobileDictionary и нажмите Start.

Мы получим окно SearchResults (как нетрудно догадаться, с результатами поиска :)), которое будет содержать две ссылки на найденные строки. Первая ссылка - объявление переменной ivjOptionsButtonGroup для нас не представляет интереса, а вот вторая ссылка - getOptionsButtonGroup() - именно то, что нам надо...

После инициализации переменной ivjOptionsButtonGroup добавляем следующий код между сгенерированными комментариями:

   // user code begin {1}
    ivjOptionsButtonGroup.add(ivjJOptionsRadioButton1);
    ivjOptionsButtonGroup.add(ivjJOptionsRadioButton2);
    ivjOptionsButtonGroup.add(ivjJOptionsRadioButton3);
    // user code end

Но если вы пролистаете код в отдельном окне ( Window -> Source View), то увидите, что метод getOptionsButtonGroup() нигде не вызывается, нам надо вызывать этот метод самим. Итак, нажмите кнопку Create Field для создания переменной класса. Заполните поля:
  • FieldName -> mafOptionsButtonGroup (maf = manually added fields :)));
  • Field Type -> ButtonGroup;
  • Access Modifiers -> private (так как только методы данного класса будут обращаться к этой переменной).

Создания поля класса
Далее, зайдите в метод getMobileDictionaryPane() и между автоматически сгенерированными комментариями добавьте следующий код:
   // user code begin {1}
    mafOptionsButtonGroup = getOptionsButtonGroup();
    // user code end

По сути, не критично в каком методе инициализировать mafOptionsButtonGroup, основное требование, чтобы это происходило после инициализации переменных JRadioButton, которое выполняется в методе getMobileDictionaryPane(). То есть вы можете спокойно объявить инициализацию в другом методе, например getJFrameContentPane(), главное, чтобы переменные ivjJOptionsRadioButton1, ivjJOptionsRadioButton2, ivjJOptionsRadioButton3 уже были проинициализированны к этому моменту...

Запустим приложение на выполнение. О, чудо! Флажки работают как надо.

Но что это такое? Help -> About не выдает ничего, а ведь мы при генерации скелета приложения при помощи SmartGuide выбрали галочку на опции генерирования окна About. Да и класс MobileDictionaryAboutBox был сгенерирован... Дело в том, что VAJ подключает автоматически свой пункт меню "About Box", а так как мы при модифицировании меню удалили этот пункт и вместо него создали свой "About", VisualAge не подключила наш пункт меню к диалоговому окну (хотя и создало все заглушки)...

Переходим в визуальный редактор (закладка Visual Composition). Нажмите правую кнопку мыши на пункте меню "About", выберите из контекстного меню "Event to Code ...", установите:

  • AboutMenuItem event -> actionPerformed;
  • Method -> showAboutBox() (я же говорил, что VAJ сгенерировала все заглушки, хоть и не знала к какому пункту меню подключить диалог).

Подключение кода к событию
Нажмите "Ok".

В визуальном редакторе вы должны получить что-то типа этого:
Размещение элементов в визуальном редакторе

Попробуйте запустить приложение на выполнение, уверяю вас, теперь "Help -> About" будет работать корректно ! :))

TOC | Часть 5 >




Справка | Условия Copyright © 1999 — 2008, IT • archiv.
В начало | Логин | Добавить отзыв | Поиск | Почта