openjdk.ruOpenJDK на русском

JEP 205: New Controls for JavaFX

Новые элементы управления для JavaFX

АвторStephen Northover
ОтветственныйSteve Northover
ТипFeature
ОбластьJDK
СтатусClosed / Delivered
Выпуск8u40
Компонентclient-libs
Обсуждениеopenjfx dash dev at openjdk dot java dot net
ТрудоёмкостьM
ДлительностьM
Связан сJEP 209: JavaFX Scene Builder Update
РецензентыKevin Rushforth
ОдобренRichard Bair
Создан2014/05/16 19:48
Обновлён2015/03/03 04:22
Задача8043350

Аннотация

Добавить в JavaFX элемент управления «счётчик» (spinner), элемент управления для форматированного текста и стандартный набор диалоговых окон-предупреждений.

Мотивация

JavaFX должна быть полной и всеобъемлющей, иначе это мешает её распространению. Spinner — стандартный элемент пользовательского интерфейса, который встречается во многих приложениях. Бизнес-приложениям нужны элементы управления для форматированного текста, чтобы проверять вводимые данные. Большинству приложений время от времени нужно предупреждать пользователя или запрашивать подтверждение «ok/cancel». Чтобы быть полными и привлекательными, развитым приложениям с пользовательским интерфейсом нужна эта функциональность.

Описание

Новые элементы управления добавляются в JavaFX по стандартному шаблону реализации. Каждый элемент управления JavaFX состоит из самого элемента и предоставляемого им публичного API, класса поведения, который обрабатывает события ввода и отвечает за подобную функциональность, и класса оформления (skin) для итогового отображения. Класс оформления настраивается с помощью CSS, и для него определены стандартные CSS-классы, чтобы элементом управления можно было управлять из CSS-файла.

Spinner — хорошо известный элемент пользовательского интерфейса, который можно считать разновидностью комбинированного списка (combo box). С помощью spinner из списка значений можно выбрать одно значение. Значения часто выбираются с помощью стрелок вверх и вниз. Элементы spinner обычно отображают числовые значения и позволяют их изменять, но могут отображать и строки, которые часто представляют элементы перечисления.

Элемент управления для фильтруемого текста часто (но не обязательно) реализуется как подкласс однострочного текстового поля. Так он наследует возможности редактирования, а к ним добавляется API для ограничения и форматирования символов, которые можно отображать и вводить. Фильтруемый текст служит основой для сложного форматирования. Например, можно реализовать маски форматирования, такие как (###) ###-####, которые могут задавать номер телефона.

Стандартные диалоговые окна-предупреждения широко распространены в настольных приложениях и представляют собой хорошо понятный шаблон взаимодействия. Предупреждения сообщают пользователю, что что-то произошло. Обычно в них есть значок, который показывает серьёзность уведомления (то есть предупреждение, ошибка или информация). На одних платформах предупреждения реализованы как окна верхнего уровня, модальные по отношению к родительскому окну; на других они прикреплены к рамке родительского окна и выдвигаются при запросе.

Тестирование

В JavaFX есть стандартный набор модульных тестов для проверки элементов управления. Есть также полноценные примеры, такие как Ensemble, в которых приведён пример кода для каждого элемента управления. SceneBuilder — большое приложение на JavaFX, в котором программисты могут перетаскивать элементы управления с палитры. Описанные здесь элементы управления будут добавлены в существующие фреймворки и будут протестированы по стандартному процессу JavaFX SQE.