След: Создание GUI С JFC/Swing
Урок: Пишущие Слушатели События
Раздел: Реализующие Слушатели для Обычно Обрабатываемых Событий
Как Записать Слушателю Внутренней рамки
Домашняя страница > Создание GUI С JFC/Swing > Пишущие Слушатели События

Как Записать Слушателю Внутренней рамки

InternalFrameListener подобно a WindowListener. Как слушатель окна, слушатель внутренней рамки прислушивается к событиям, которые происходят, когда "окно" показали впервые, избавлено, представлено в виде значка, deiconified, активировано, или деактивировано. Перед использованием слушателя внутренней рамки, пожалуйста, ознакомьте себя с WindowListener интерфейс в том, Как Записать Слушателям Окна.

Приложение, показанное в следующем числе, демонстрирует события внутренней рамки. Приложение прислушивается к событиям внутренней рамки от фрейма Генератора событий, выводя на экран сообщение, которое описывает каждое событие.

Окно, которое демонстрирует события внутренней рамки, которые запускаются фреймом Генератора событий

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

Вот код обработки событий внутренней рамки:

public class InternalFrameEventDemo ...
                     implements InternalFrameListener ... {
    ...

    public void internalFrameClosing(InternalFrameEvent e) {
        displayMessage("Internal frame closing", e);
    }

    public void internalFrameClosed(InternalFrameEvent e) {
        displayMessage("Internal frame closed", e);
        listenedToWindow = null;
    }

    public void internalFrameOpened(InternalFrameEvent e) {
        displayMessage("Internal frame opened", e);
    }

    public void internalFrameIconified(InternalFrameEvent e) {
        displayMessage("Internal frame iconified", e);
    }

    public void internalFrameDeiconified(InternalFrameEvent e) {
        displayMessage("Internal frame deiconified", e);
    }

    public void internalFrameActivated(InternalFrameEvent e) {
        displayMessage("Internal frame activated", e);
    }

    public void internalFrameDeactivated(InternalFrameEvent e) {
        displayMessage("Internal frame deactivated", e);
    }

    void displayMessage(String prefix, InternalFrameEvent e) {
        String s = prefix + ": " + e.getSource(); 
        display.append(s + newline);
    }

    public void actionPerformed(ActionEvent e) {
        if (SHOW.equals(e.getActionCommand())) {
            ...
            if (listenedToWindow == null) {
                listenedToWindow = new JInternalFrame("Event Generator",
                                                      true,  //resizable
                                                      true,  //closable
                                                      true,  //maximizable
                                                      true); //iconifiable
                //We want to reuse the internal frame, so we need to
                //make it hide (instead of being disposed of, which is
                //the default) when the user closes it.
                listenedToWindow.setDefaultCloseOperation(
                                        WindowConstants.HIDE_ON_CLOSE);

                listenedToWindow.addInternalFrameListener(this);
                ...
            }
        } 
        ...
    }
}

API Слушателя Внутренней рамки

Интерфейс InternalFrameListener

Соответствующий адаптер class InternalFrameAdapter.

Метод Цель
internalFrameOpened (InternalFrameEvent) Вызванный сразу после слушаемого внутреннюю рамку показали впервые.
internalFrameClosing (InternalFrameEvent) Вызванный в ответ на пользователя запрашивают, чтобы слушаемые внутренняя рамка были закрыты. По умолчанию, JInternalFrame скрывает окно, когда пользователь закрывает его. Можно использовать JInternalFrame setDefaultCloseOperation метод, чтобы определить другую опцию, которая должна быть также DISPOSE_ON_CLOSE или DO_NOTHING_ON_CLOSE (оба определенные в WindowConstants, интерфейс это JInternalFrame реализации). Или реализовывая internalFrameClosing метод в слушателе внутренней рамки, можно добавить пользовательское поведение (такое как перевод в рабочее состояние диалоговых окон или сохранение данных) к закрытию внутренней рамки.
internalFrameClosed (InternalFrameEvent) Вызванный сразу после слушаемого от внутренней рамки избавились.
internalFrameIconified (InternalFrameEvent)
internalFrameDeiconified (InternalFrameEvent)
Вызванный сразу после слушаемого внутренняя рамка представляется в виде значка или deiconified, соответственно.
internalFrameActivated (InternalFrameEvent)
internalFrameDeactivated (InternalFrameEvent)
Вызванный сразу после слушаемого внутренняя рамка активирована или деактивирована, соответственно.

У каждого метода события внутренней рамки есть единственный параметр: InternalFrameEvent объект. InternalFrameEvent class не определяет обычно полезных методов. Чтобы получить внутреннюю рамку, которая запустила событие, используйте getSource метод, который InternalFrameEvent наследовался от java.util.EventObject.

Примеры та Внутренняя рамка Использования Слушатели

Никакие другие исходные файлы в настоящий момент не содержат слушателей внутренней рамки. Однако, слушатели внутренней рамки очень подобны WindowListenerу s и несколько программ Swing есть слушатели окна:

Пример Где Описано Примечания
InternalFrameEventDemo Этот раздел Отчеты все события внутренней рамки, которые происходят на одной внутренней рамке, чтобы демонстрировать обстоятельства, при которых запускаются события внутренней рамки.
DialogDemo Текстовые Компонентные Функции CustomDialog.java использование setDefaultCloseOperation вместо слушателя окна, чтобы определить, что действие взять, когда пользователь закрывает окно.
SliderDemo Как Использовать Ползунки Прислушивается к окну, представляют в виде значка и deiconify события, так, чтобы оно могло остановить анимацию, когда окно не видимо.

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

Предыдущая страница: Как Записать Слушателю Фокуса
Следующая страница: Как Записать Слушателю Элемента