Spec-Zone .ru
спецификации, руководства, описания, API
След: Создание GUI С JFC/Swing
Урок: Используя Компоненты Swing
Раздел: Как Использовать Различные Компоненты
Как Использовать Снабженные вкладками Области
Домашняя страница > Создание GUI С JFC/Swing > Используя Компоненты Swing

Как Использовать Снабженные вкладками Области

С JTabbedPane class, Вы можете иметь несколько компонентов, таких как панели, совместно использовать то же самое пространство. Пользователь выбирает который компонент просмотреть, выбирая вкладку, соответствующую требуемому компоненту. Если Вы хотите подобную функциональность без интерфейса вкладки, можно использовать расположение карты вместо снабженной вкладками области.

Создать Снабженные вкладками Области

Чтобы создать снабженную вкладками область, инстанцировать JTabbedPane, создайте компоненты, Вы хотите, чтобы это вывело на экран, и затем добавило компоненты к снабженной вкладками области, используя addTab метод.

Следующее изображение представляет вызванное приложение TabbedPaneDemo у этого есть снабженная вкладками область с четырьмя вкладками.

Снимок экрана TabbedPaneDemo

Попробуйте это: 
  1. Нажмите кнопку Launch, чтобы работать, TabbedPaneDemo, используя Сеть Java™ Запускаются (загрузите JDK 6 или позже). Альтернативно, чтобы скомпилировать и выполнить пример самостоятельно, консультируйтесь, пример индексируют.Запускает Приложение TabbedPaneDemo
  2. Поместите курсор по вкладке.
    Подсказка, связанная с вкладкой, появляется. Как удобство, можно определить текст подсказки, когда Вы добавляете компонент к снабженной вкладками области.
  3. Выберите вкладку, щелкая по этому.
    Снабженная вкладками область выводит на экран компонент, соответствующий вкладке.
  4. Выберите вкладку, вводя ее мнемосхему.
    Например, в стили Java можно выбрать вкладку маркированная "Вкладка 3", вводя Alt-3.
  5. Переместитесь между вкладками с возможностью прокрутки.
    Этот пример обеспечивает вкладки с возможностью прокрутки. Измените размеры диалогового окна, перемещая его левую или правую границу так, чтобы вкладки не соответствовали в пределах диалогового окна. Стрелки прокрутки появляются рядом с вкладками.
    Щелкните по стрелке, чтобы просмотреть одну из скрытых вкладок.
    Отметьте, что щелчок по стрелке только показывает скрытые вкладки. Это не выбирает новую вкладку.

Как TabbedPaneDemo шоу в качестве примера, у вкладки могут быть подсказка и мнемосхема, и она может вывести на экран и текст и изображение.

Размещение вкладки

Размещение вкладки значения по умолчанию устанавливается в TOP расположение, как показано выше. Можно изменить размещение вкладки на LEFT, RIGHT, TOP или BOTTOM при использовании setTabPlacement метод.

Код для Снабженных вкладками Областей

Следующий код от TabbedPaneDemo.java создает снабженную вкладками область в предыдущем примере. Отметьте, что никакой код обработки событий не необходим. JTabbedPane объект заботится о мыши и событиях клавиатуры для Вас.

JTabbedPane tabbedPane = new JTabbedPane();
ImageIcon icon = createImageIcon("images/middle.gif");

JComponent panel1 = makeTextPanel("Panel #1");
tabbedPane.addTab("Tab 1", icon, panel1,
                  "Does nothing");
tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);

JComponent panel2 = makeTextPanel("Panel #2");
tabbedPane.addTab("Tab 2", icon, panel2,
                  "Does twice as much nothing");
tabbedPane.setMnemonicAt(1, KeyEvent.VK_2);

JComponent panel3 = makeTextPanel("Panel #3");
tabbedPane.addTab("Tab 3", icon, panel3,
                  "Still does nothing");
tabbedPane.setMnemonicAt(2, KeyEvent.VK_3);

JComponent panel4 = makeTextPanel(
        "Panel #4 (has a preferred size of 410 x 50).");
panel4.setPreferredSize(new Dimension(410, 50));
tabbedPane.addTab("Tab 4", icon, panel4,
                      "Does nothing at all");
tabbedPane.setMnemonicAt(3, KeyEvent.VK_4);

Поскольку предыдущий код показывает, addTab метод обрабатывает объем работы в установке вкладки в снабженной вкладками области. addTab у метода есть несколько форм, но они все используют и строку title и компонент, который будет выведен на экран вкладкой. Дополнительно, можно определить строка подсказки и значок. Текст или значок (или оба) могут быть нулем. Другой способ создать вкладку состоит в том, чтобы использовать insertTab метод, который позволяет Вам определять индексирование вкладки, которую Вы добавляете. Отметьте что addTab метод не позволяет, индексируют спецификацию в этом шаге.

Переключаться на Определенные Вкладки

Есть три способа переключиться на определенные вкладки, используя GUI.

  1. Используя мышь. Чтобы переключиться на определенную вкладку, пользователь щелкает по этому с мышью.
  2. Используя стрелки клавиатуры. Когда JTabbedPane у объекта есть фокус, стрелки клавиатуры могут использоваться, чтобы переключиться от вкладки до вкладки.
  3. Используя ключевую мнемонику. setMnemonicAt метод позволяет пользователю переключаться на определенную вкладку, используя клавиатуру. Например, setMnemonicAt(3, KeyEvent.VK_4) делает '4' мнемосхема для четвертой вкладки (который является в, индексируют 3, так как индексы запускаются с 0); нажатие Alt-4 заставляет компонент четвертой вкладки появиться. Часто, мнемосхема использует символ в title вкладки, который тогда автоматически подчеркивается.

Чтобы переключиться на определенную вкладку программно, используйте setSelectedIndex или setSelectedComponent методы.

Привилегированный Размер на Вкладках

Когда составные части здания, чтобы добавить к снабженной вкладками области, имейте в виду, что независимо от того, какой дочерний элемент снабженной вкладками области видим, каждый дочерний элемент получает то же самое количество пространства, в котором можно вывести на экран себя. Привилегированный размер снабженной вкладками области является только достаточно большим, чтобы вывести на экран ее самый высокий дочерний элемент в ее привилегированном height, и его самый широкий дочерний элемент в его привилегированном width. Точно так же минимальный размер снабженной вкладками области зависит от самого большого минимального width и height всех его дочерних элементов.

В TabbedPaneDemo пример, у четвертой панели есть привилегированный width и height, которые больше чем таковые из других панелей. Таким образом привилегированный размер снабженной вкладками области является только достаточно большим, чтобы вывести на экран четвертую панель в ее привилегированном размере. Каждая панель получает точно то же самое количество пространства — 410 широких пикселей и 50 высокий, предполагая, что снабженная вкладками область в ее привилегированном размере. Если Вы не понимаете, как привилегированный размер используется, пожалуйста, обратитесь к Как Работы управления Расположением.

Вкладки С Пользовательскими Компонентами

TabComponentsDemo пример представляет снабженную вкладками область, вкладки которой содержат реальные компоненты. Использование пользовательских компонентов приносит новые функции, такие как кнопки, поля комбинированного списка, метки и другие компоненты к вкладкам, и позволяет более сложное взаимодействие с пользователем.

Вот снабженная вкладками область с близкими кнопками на ее вкладках.

Снимок экрана TabComponentsDemo

Попробуйте это: 
  1. Нажмите кнопку Launch, чтобы работать, TabComponentsDemo, используя Сеть Java™ Запускаются (загрузите JDK 6 или позже). Альтернативно, чтобы скомпилировать и выполнить пример самостоятельно, консультируйтесь, пример индексируют.Запускает Приложение TabComponentsDemo
  2. Поместите курсор по вкладке.
  3. Выберите вкладку, щелкая по этому (удостоверьтесь, что не поразили небольшой крест).
  4. Поместите курсор по одному из виджетов с небольшим крестом.
    Крест становится пурпурным и включается в квадрат. Появляется подсказка, связанная с близкой кнопкой.
    Щелкните по кресту с левой кнопкой мыши, чтобы закрыть вкладку.
  5. Восстановите вкладки, которые были удалены, выбирая Сброс элемент JTabbedPane из меню опций.
  6. Отметьте, что вкладки с пользовательскими компонентами выводятся на экран сверху исходных снабженных вкладками вкладок области.
    Чтобы просмотреть вкладки внизу, откройте меню опций и снимите флажок Use TabComponents.
  7. Выведите на экран вкладки с компонентами, устанавливая флажок Use TabComponents снова.
  8. Закройте все вкладки. Теперь снабженная вкладками область пуста.

Удалить Вкладки

Следующий код от ButtonTabComponent.java удаляет вкладку из снабженной вкладками области. Отметьте, что код обработки событий необходим. Так как каждая вкладка содержит вещественное число JButton объект, следует присоединить ActionListener к близкой кнопке. Поскольку пользователь нажимает кнопку, actionPerformed метод определяет индексирование вкладки, которой это принадлежит и удаляет соответствующую вкладку.

public void actionPerformed(ActionEvent e) {
    int i = pane.indexOfTabComponent(ButtonTabComponent.this);
    if (i != -1) {
    pane.remove(i);
    }
}

Дать Заголовки Специализированным Вкладкам

Код ниже, взятый от ButtonTabComponent.java, шоу, как специализированный компонент вкладки получает title от исходной снабженной вкладками вкладки области.

JLabel label = new JLabel(title) {
    public String getText() {
        int i = pane.indexOfTabComponent(ButtonTabComponent.this);
        if (i != -1) {
            return pane.getTitleAt(i);
        }
        return null;
    }
};

Снабженный вкладками API Области

Следующие таблицы приводят обычно используемый JTabbedPane конструкторы и методы. API для того, чтобы использовать снабженные вкладками области попадает в следующие категории:

Создание и Установка Снабженной вкладками Области
Метод или Конструктор Цель
JTabbedPane ()
JTabbedPane (интервал)
JTabbedPane (интервал, интервал)
Создает снабженную вкладками область. Первый дополнительный параметр определяет, где вкладки должны появиться. По умолчанию вкладки появляются наверху снабженной вкладками области. Можно определить эти позиции (определенный в SwingConstants интерфейс, который JTabbedPane реализации): TOP, BOTTOM, LEFT, RIGHT. Второй дополнительный параметр определяет политику расположения вкладки. Можно определить одну из этих политик (определенный в JTabbedPane): WRAP_TAB_LAYOUT или SCROLL_TAB_LAYOUT.
addTab (Строка, Значок, Компонент, Строка)
addTab (Строка, Значок, Компонент)
addTab (Строка, Компонент)
Добавляет новая вкладка к снабженной вкладками области. Первый параметр определяет текст на вкладке. Дополнительный параметр значка определяет значок вкладки. Компонентный параметр определяет компонент, который должна показать снабженная вкладками область, когда вкладка выбирается. Четвертый параметр, если есть определяет текст подсказки для вкладки.
освободите setTabLayoutPolicy (интервал)
интервал getTabLayoutPolicy ()
Наборы или получают политику, что снабженная вкладками область использует в разметке вкладок, когда все вкладки не соответствуют в пределах единственного выполнения. Возможные значения WRAP_TAB_LAYOUT и SCROLL_TAB_LAYOUT. Политика значения по умолчанию WRAP_TAB_LAYOUT.
освободите setTabPlacement (интервал)
интервал getTabPlacement ()
Наборы или получают расположение, где вкладки появляются относительно контента. Возможные значения (определенный в SwingConstants, который реализуется JTabbedPane) TOP, BOTTOM, LEFT, и RIGHT.
Вставка, Удаляя, Находя, и Выбирая Вкладки
Метод Цель
insertTab (Строка, Значок, Компонент, Строка, интервал) Вставляет вкладку в указанном, индексируют, где первая вкладка в, индексируют 0. Параметрами является то же самое что касается addTab.
удалите (Компонент)
removeTabAt (интервал)
Удаляет вкладку, соответствующую указанному компоненту, или индексировать.
removeAll () Удаляет все вкладки.
интервал indexOfComponent (Компонент)
интервал indexOfTab (Строка)
интервал indexOfTab (Значок)
Возвращает индексирование вкладки, у которой есть указанный компонент, title, или значок.
освободите setSelectedIndex (интервал)
освободите setSelectedComponent (Компонент)
Выбирает вкладку, у которой есть указанный компонент, или индексировать. Выбор вкладки имеет эффект отображения его связанного компонента.
интервал getSelectedIndex ()
Компонент getSelectedComponent ()
Возвращает индексирование или компонент для выбранной вкладки.
Изменение Появления Вкладки
Метод Цель
освободите setComponentAt (интервал, Компонент)
Компонент getComponentAt (интервал)
Наборы или добираются, какой компонент связывается с вкладкой в указанном, индексируют. Первая вкладка в, индексируют 0.
освободите setTitleAt (интервал, Строка)
Представьте getTitleAt в виде строки (интервал)
Наборы или добираются, title вкладки в указанном индексируют.
освободите setIconAt (интервал, Значок)
Значок getIconAt (интервал)
освободите setDisabledIconAt (интервал, Значок)
Значок getDisabledIconAt (интервал)
Наборы или вывели на экран значок вкладкой в указанном, индексируют.
освободите setBackgroundAt (интервал, Цвет)
Покрасьте getBackgroundAt (интервал)
освободите setForegroundAt (интервал, Цвет)
Покрасьте getForegroundAt (интервал)
Наборы или получают цвет фона, или цвет переднего плана, используемый вкладкой в указанном, индексируют. По умолчанию вкладка использует цвета фона снабженной вкладками области и цвета переднего плана. Например, если передний план снабженной вкладками области является черным, то title каждой вкладки является черным за исключением любых вкладок, для которых Вы определяете другое цветное использование setForegroundAt.
освободите setEnabledAt (интервал, булев)
булев isEnabledAt (интервал)
Наборы или добираются, включенное состояние вкладки в указанном индексируют.
освободите setMnemonicAt (интервал, интервал)
интервал getMnemonicAt (интервал)
Наборы или получают мнемосхему клавиатуры для того, чтобы она получила доступ к указанной вкладке.
освободите setDisplayedMnemonicIndexAt (интервал, интервал)
интервал getDisplayedMnemonicIndexAt (интервал)
Наборы или добираются, какой символ должен быть украшен, чтобы представить мнемосхему. Это полезно, когда мнемонический символ появляется многократно в title вкладки, и Вы не хотите первое подчеркнутое возникновение.
освободите setToolTipTextAt (интервал, Строка)
Представьте getToolTipTextAt в виде строки (интервал)
Наборы или вывели на экран текст на подсказках для указанной вкладки.
Установка Пользовательских Компонентов на Вкладках
Метод Цель
освободите setTabComponentAt (интервал, Компонент) Устанавливает компонент, который ответственен за рендеринг title или значка (или оба) для вкладки, определенной первым параметром. Когда нулевое значение определяется, JTabbedPane представляет title или значок. Тот же самый компонент не может использоваться для нескольких вкладок.
Компонент getTabComponentAt (интервал) Получает компонент вкладки для вкладки при индексировании указанного параметром. Если нет никакого компонента вкладки для указанной вкладки, нулевое значение возвращается.
интервал indexOfTabComponent (Компонент) Проверки, если указанный компонент принадлежит одной из вкладок. Возвратите индексирование соответствующей вкладки или-1, если нет такой вкладки.

Примеры То Использование Снабженные вкладками Области

Эта таблица приводит примеры то использование JTabbedPane и точки туда, где те примеры описываются.

Пример Где Описано Примечания
TabbedPaneDemo Эта страница Демонстрирует несколько снабженных вкладками функций области, таких как подсказки, значки, расположение с возможностью прокрутки, и мнемоника.
TabComponentsDemo Эта страница Демонстрирует пользовательские компоненты на вкладках. Использует снабженную вкладками область с близкими кнопками.
BoxAlignmentDemo Как Использовать BoxLayout Использование a JTabbedPane как единственный дочерний элемент области контента фрейма.
BorderDemo Как Использовать Границы Использует его снабженную вкладками область способом, подобным BoxAlignmentDemo.
DialogDemo Как Использовать Диалоговые окна Имеет снабженную вкладками область в центре области контента фрейма, с меткой ниже этого.

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Как Использовать Разделенные области
Следующая страница: Как Использовать Таблицы