Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

JTabbedPane: Вкладки С возможностью прокрутки

Ранее с JTabbedPane, если все вкладки не соответствовали в пределах единственной выполненной вкладки, JTabbedPane обернутые вкладки на многократные выполнения. Было много запросов, чтобы обеспечить альтернативную схему, где JTabbedPane вместо этого вывел бы на экран единственное, выполнение с возможностью прокрутки вкладок. Этот документ описывает новый API для того, чтобы оказать такую поддержку вкладки с возможностью прокрутки в JTabbedPane для этих 1.4 выпусков. Отчет bugtraq, который соответствует этому изменению: 4093898.

Дилемма Слишком-многих-вкладок

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

Графический с двумя строками вкладок. Первая строка имеет пять, вторая строка имеет четыре.

Однако, проблема с многократными выполнениями находится в обработке случая, где пользователь выбирает вкладку в выполнении, которое не смежно с областью дисплея панели. Для Windows и реализаций стили Мотива, это действие заставит выполнения вращаться так, что, выполнение, содержащее выбранную вкладку, помещается смежное с областью дисплея панели.

Графический с выбранной вкладкой, смежной с панелью, выводят на экран область

Это поведение может чрезвычайно дезориентировать пользователю, потому что оно постоянно перестраивает вкладки, устраняя предсказуемость в UI. Металлический стиль, решенный эта проблема, всегда оставляя фиксированные выполнения, даже если выбранная вкладка не смежна с областью дисплея панели:

Графический с выбранной вкладкой обозначается различным цветом

К сожалению, нижняя сторона Металлического решения - то, что оно визуально отступает от 'снабженной вкладками папки' метафора (выбранная вкладка не 'присоединяется' к ее контенту). Фактически, Глава 7 Инструкций по Стили Java рекомендует против создания снабженных вкладками областей с многократными выполнениями:

"Если Ваша снабженная вкладками область требует многократных строк вкладок, рассмотрите деление контента среди нескольких диалоговых окон или компонентов. Многократные строки вкладок могут сбить с толку."

В то время как ограничение вкладок в снабженной вкладками области к числу, которое будет соответствовать в пределах единственного выполнения, является важной инструкцией UI, есть обстоятельства, где быстрого увеличения вкладок нельзя избежать. Это часто имеет место, создаются ли вкладки динамически приложением во время выполнения (возможно, прогнанный контент базы данных).

Альтернативное решение для того, чтобы обработать случай быстрого увеличения вкладки состоит в том, чтобы ограничить снабженную вкладками область к единственному, выполнению с возможностью прокрутки вкладок:

Графический с единственной строкой вкладок, которая не включает все возможные варианты

Естественно, у этого решения есть свой собственный набор проблем удобства пользования, самая очевидная из которых - то, что пользователь больше не может просмотреть все возможные выборы когда-то. Однако, это поведение вкладки с возможностью прокрутки все более и более распространено в пользовательских интерфейсах, и поэтому Swing теперь поддерживает его как опцию.

Новый JTabbedPane API

Чтобы позволить программам определять, какого поведения расположения вкладки они требуют, мы теперь обеспечиваем "tabLayoutPolicy", привязанный свойство JTabbedPane:

    public void setTabLayoutPolicy(int layoutPolicy)

    public boolean getTabLayoutPolicy()

Дополнительно, константы для поддерживаемых значений политики были добавлены к JTabbedPane:

    public static final int WRAP_TAB_LAYOUT = 0;

    public static final int SCROLL_TAB_LAYOUT = 1;

Совместимость

Эта функция, оказанная никакое влияние на совместимость, как значение по умолчанию для tabLayoutPolicy свойство WRAP_TAB_LAYOUT который соответствует предыдущее поведение расположения снабженной вкладками области.


Oracle и/или его филиалы Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами