Forms Designer — средство визуальной разработки форм для Ваших приложений. Создаваемая с его
помощью двухмерная форма превращается в исходный код, который базируется на
WFC (Windows Foundation Classes for Java). Forms Designer поддерживает такие
функции RAD (Rapid Application Development), как генерация кода, автоматическое
завершение операторов, быстрый анализ синтаксиса, вставка отладочной информации.
Кроме того, он предоставляет инструменты для:
Вы можете
добавить форму в приложение через меню Project. Объекты (компоненты и
элементы управления) можно вставлять на форму простым перемещением с панели
Toolbox. Форма сохраняется как блок исходного кода, определяющего экземпляр
WFC-класса Form.
Исходный
класс Form содержит:
Forms Designer
генерирует код, учитывая значения, установленные в окне Properties для каждого
элемента управления и самой формы. Будьте осторожны, модифицируя метод initForm,
так как Forms Designer считывает его код при отображении формы. Кроме того,
избегайте в нем условных операторов (if, while или switch) и методов компонентов.
Если Вы все же редактируете код метода initForm, ограничьтесь изменением значений
непосредственно в свойствах с префиксом set "и не используйте переменных.
Например: правильно: setSize(10,100); неправильно: х=10; у=100; setSize(x.y);
Чтобы
создать форму:
На экране
появляется окно формы, показывающее ее поверхность. Если Вы создаете новую форму
по шаблону, она автоматически открывается в режиме конструирования (design mode).
Если Forms
Designer в данный момент неактивен, откройте его по следующей процедуре.
Чтобы просмотреть форму в Forms Designer:
— или
—
По умолчанию
элементы управления выравниваются на форме по сетке, параметры которой определяются
в диалоговом окне, открываемом командой Options из меню Tools. Свойства
формы можно модифицировать прямо на странице свойств этой формы.
Панель Toolbox
содержит WFC-элементы и, в ряде случаев, другие вкладки, открывающие доступ
к ActiveX-элементам и нестандартным элементам управления. Создав форму, можете
размещать на ней элементы управления.
Forms Designer
включает панель Toolbox с исходными элементами управления, которые — в зависимости
от типа — распределены по вкладкам. Вы можете вводить в Toolbox свои вкладки
и добавлять нестандартные элементы управления на любые вкладки.
Чтобы
добавить объекты в Toolbox:
— или —
Вставьте
в Toolbox элемент, скопированный в буфер обмена.
— или —
Перетащите
выделенный фрагмент кода или текста из встроенного текстового редактора в Toolbox,
а затем перетаскивайте полученный элемент в другие файлы или окна, где Вы хотите
использовать этот фрагмент.
Примечание Отображаются только компоненты, которые расширяют com.ms.wfc. core.Component и у которых установлен атрибут ShowInToolbox (он равен true по умолчанию).
Чтобы сгруппировать
свои инструменты, Вы можете:
Примечание
Попытка переместить неперемещаемый элемент приводит к его копированию на другую
вкладку.
Вы можете
добавлять и настраивать вкладки в Toolbox:
Чтобы
вывести объекты Toolbox в виде списка:
Чтобы
вывести объекты Toolbox в виде значков:
Чтобы
удалить объекты из Toolbox:
Чтобы восстановить удаленный
элемент:
Добавление
элементов управления на форму
Вы добавляете
элементы управления на форму в режиме конструирования.
Чтобы
добавить элемент управления на форму:
— или —
Щелкните сначала элемент
в Toolbox, затем — форму. На ней появится элемент управления стандартных
размеров.
— или —
Дважды щелкните элемент
в Toolbox, и в центре формы появится элемент управления стандартных размеров.
После этого Вы сможете переместить его в нужное место.
Примечание
Когда элемент управления помещается на форму на этапе разработки,
добавляется лишь имя класса для этого элемента. Соответствующий код генерируется
только после закрытия формы. Если Вы модифицируете существующий элемент управления,
уже включенный в Toolbox, то, чтобы форма получила обновленные файлы классов
для этого элемента, закройте и снова откройте ее или перезагрузите проект.
Чтобы
изменить размеры элемента управления:
Примечание
То же самое можно сделать клавишами-стрелками при нажатой клавише
Shift.
Чтобы
добавить шаблон обработчика события:
Примечание
Обработчики событий можно добавлять через окно Properties в режиме
просмотра событий.
Добавление
обработчика события
Forms Designer
позволяет создавать обработчики событий (event hadlers). Обработчик события
— блок Вашего кода, который определяет операции, выполняемые при возникновении
некоего события (например, щелчка кнопки).
Так, обработчик
события mouseDown предоставляет объект mouseEvent, через который можно выяснить,
какая кнопка мыши была нажата, где в этот момент находился курсор мыши и какие
клавиши на клавиатуре удерживались при щелчке.
Вы можете
добавить обработчик события, используя окно Properties в режиме просмотра событий.
А чтобы добавить обработчик события по умолчанию, достаточно дважды щелкнуть
нужный элемент управления или форму. Более того, Вы можете закрепить существующий
обработчик за событиями других элементов управления — если совпадают сигнатуры
их событий.
Чтобы
добавить обработчик события через окно Properties в режиме просмотра событий:
При этом генерируется примерно такой шаблон кода:
private void MyButton_click(Object sender, Event e)
{
}
В данном
случае sender — источник события, a e — объект Event, который
предоставляет информацию о событии.
Чтобы
добавить обработчик для события по умолчанию:
— или —
В окне Properties
(в режиме просмотра событий) дважды щелкните имя
события.
Чтобы
один обработчик реагировал на события, общие для нескольких элементов управления:
Вы форматируете
размещенные на форме объекты, изменяя параметры сетки и свойства, относящиеся
к группе location, а также вызывая команды из меню Format.
Чтобы
изменить свойства элемента управления, относящиеся к группе location:
Примечание
Эти свойства можно изменять и программно, присваивая требуемые значения
в коде.
Чтобы
установить параметры сетки:
Это диалоговое окно
позволяет устанавливать значения, используемые по умолчанию при выводе сетки,
в том числе ее высоту и ширину в пикселах, а также включать и отключать
выравнивание по линиям сетки. Команды меню Format позволяют:
Чтобы
выровнять два элемента управления на форме:
Модификация
поведения элементов управления при размещении на форме
Forms Designer
позволяет определить поведение элементов управления при их размещении на форме.
Например, Вы можете привязать метку к верхнему краю формы или изменить принципы
стыковки формы и элементов управления,
Чтобы
привязать элемент управления к какому-то участку формы:
Чтобы
изменить принципы стыковки:
Примечание
Размеры элемента управления автоматически подгоняются под границы,
с которыми он стыкуется.
Большинство
элементов управления можно стыковать с краями формы или сделать так, чтобы они
автоматически заполняли всю форму.
Установка
свойств через окно Properties
Свойства
— это атрибуты, определяющие внешний вид, позицию и поведение элемента управления
в период выполнения. С каждой формой и каждым элементом управления связана страница
свойств. Модификация
свойств на этой странице (т. е. в окне Properties) влияет на код, генерируемый
для данного элемента в методе initForm. Для формы в окне Properties можно установить
такие свойства, как цвет фона, видимость, шрифт, исходный размер, позиция и
т. д.
Чтобы
изменить свойства элемента управления или формы:
Примечание
Если Вы выделите группу элементов управления, то в окне Properties
появятся только свойства, общие для этих элементов.
При установке
сложных свойств используются стандартные диалоговые окна и редакторы для:
Для доступа
ко вторичным свойствам щелкните узел составных свойств (compound properties).
Специальные
элементы управления, предоставляемые Forms Designer, позволяют создавать основные
и контекстные меню.
Если Вы хотите,
чтобы пользователь Вашего приложения мог выбирать какие-то команды, то меню
— самый удобный и простой способ сгруппировать их по назначению. Строка меню
появляется сразу под заголовком формы и содержит одно или несколько меню. Щелкнув
меню (например, File), Вы раскрываете список его элементов, к которым относятся
команды (допустим, New или Exit), разделительные линии и подменю. Каждый элемент
меню, который виден пользователю, соответствует определяемому Вами свойству
элемента управления «меню».
Чтобы
добавить на форму меню:
Примечание
Элемент управления можно просто перетащить на форму. На форму будет
вставлен элемент управления MainMenu. При
этом в первой позиции строки меню появляется текстовое поле.
Примечание
По умолчанию свойство mainMenu для формы устанавливается как
mainMenul.
Введенное
Вами название добавляется в меню, и текстовое поле смещается ниже, в следующую
позицию. Повторяйте эту операцию, пока не введете в меню названия всех элементов,
а затем переходите к следующему меню.
Названия
некоторых команд меню могут меняться в зависимости от состояния приложения (скажем,
File/Save и File/Save As). Команды меню можно включать или отключать, помечать
галочкой, скрывать или делать видимыми.
Если Вы хотите
сменить меню, используемое формой, присвойте свойству menu другое имя
меню, например mainMenu2. К меню или элементу меню (кроме разделителя) можно
добавить клавишу доступа (access key), обеспечивающую доступ к меню или
элементу меню с клавиатуры. Клавиша доступа соответствует подчеркнутой букве
в названии меню или элемента.
Чтобы
добавить клавишу доступа к меню (или элементу):
Ускорить
вызов команд меню помогают так называемые быстрые клавиши (shortcut keys).
Быстрая клавиша — это комбинация клавиш, активизирующая конкретную команду (например,
Ctrl + С вызывает команду копирования). Само меню при этом не открывается.
Чтобы
добавить быструю клавишу к элементу меню:
— или —
В окне Properties
щелкните свойство shortcut и выберите комбинацию клавиш.
Чтобы
удалить быструю клавишу:
Иногда очень
удобно, чтобы команды меню действовали подобно переключателям. Например, в Вашем
приложении доступно несколько панелей инструментов. Тогда в меню можно включить
команды с именами этих панелей. Выбрав команду в первый раз, пользователь выводит
панель на экран, а рядом с командой появляется галочка. Повторный выбор той
же команды скрывает панель инструментов и удаляет галочку рядом с названием
команды в меню.
Чтобы
включить поддержку галочек в элемент меню:
— или —
В окне Properties щелкните свойство checked.
Чтобы переместить
меню или элемент меню:
Примечание
Перемещение собственно меню вызывает перемещение и всех его элементов.
Чтобы
изменить название меню или элемента меню:
Чтобы
создать в меню разделительную линию:
— или —
Щелкните этот элемент
меню правой кнопкой мыши и выберите из контекстного
меню команду Insert Separator.
Разделители можно
перемещать и удалять точно так же, как и элементы меню.
Чтобы
удалить элемент меню:
Примечание
Чтобы удалить все меню, поочередно выделяйте их и нажимайте клавишу
Del. Или щелкните удаляемый элемент управления MainMenu и нажмите клавишу Del.
Forms Designer
требует подтверждать удаление только тех меню, где есть подменю.
Чтобы
отредактировать имя, сопоставленное с элементом меню:
Контекстные
меню можно сопоставлять с элементами управления на форме. Такое меню появится,
когда пользователь щелкнет элемент управления правой кнопкой мыши.
Чтобы
добавить на форму элемент управления «контекстное меню»:
Примечание
Элемент управления можно просто перетащить на форму.
Чтобы
закрепить контекстное меню за каким-нибудь элементом управления:
Элементы управления
«контекстное меню» редактируются точно так же, как и элементы
управления MainMenu. Подробнее см. предыдущий раздел.
Добавление
всплывающих подсказок к элементам управления на форме
Всплывающая
подсказка (ToolTip) — строка текста, которая появляется, когда курсор мыши «замирает»
над элементом управления. В Visual J + + функциональность всплывающих подсказок
поддерживается отдельным WFC-элементом. Задержку перед выводом подсказки, время
ее отображения и другие свойства можно установить на страницах свойств каждого
элемента управления, размещенного на форме.
Чтобы добавить
всплывающие подсказки к элементам управления:
Visual J
+ + синхронизирует изменения в визуальном представлении формы и в ее коде. Однако
визуальные изменения не сразу отражаются в исходном коде. Код, используемый
для создания визуального представления формы, блокируется, пока активен Forms
Designer, и обновляется только после закрытия окна конструктора или при сохранении
формы (модификация метода initForm откладывается до закрытия Forms Designer).
Forms Designer
позволяет редактировать классы со следующим синтаксисом:
class isEditable
extends [UserControl, Form, Design Page] {
Container components
= new Container(this);
private void
initForm() {
[сюда помещается
код, инициализирующий форму]
} }
К инициализирующему коду предъявляются следующие требования:
1. Электромагнитная волна (в религиозной терминологии релятивизма - "свет") имеет строго постоянную скорость 300 тыс.км/с, абсурдно не отсчитываемую ни от чего. Реально ЭМ-волны имеют разную скорость в веществе (например, ~200 тыс км/с в стекле и ~3 млн. км/с в поверхностных слоях металлов, разную скорость в эфире (см. статью "Температура эфира и красные смещения"), разную скорость для разных частот (см. статью "О скорости ЭМ-волн")
2. В релятивизме "свет" есть мифическое явление само по себе, а не физическая волна, являющаяся волнением определенной физической среды. Релятивистский "свет" - это волнение ничего в ничем. У него нет среды-носителя колебаний.
3. В релятивизме возможны манипуляции со временем (замедление), поэтому там нарушаются основополагающие для любой науки принцип причинности и принцип строгой логичности. В релятивизме при скорости света время останавливается (поэтому в нем абсурдно говорить о частоте фотона). В релятивизме возможны такие насилия над разумом, как утверждение о взаимном превышении возраста близнецов, движущихся с субсветовой скоростью, и прочие издевательства над логикой, присущие любой религии.
4. В гравитационном релятивизме (ОТО) вопреки наблюдаемым фактам утверждается об угловом отклонении ЭМ-волн в пустом пространстве под действием гравитации. Однако астрономам известно, что свет от затменных двойных звезд не подвержен такому отклонению, а те "подтверждающие теорию Эйнштейна факты", которые якобы наблюдались А. Эддингтоном в 1919 году в отношении Солнца, являются фальсификацией. Подробнее читайте в FAQ по эфирной физике.