Spec-Zone .ru
спецификации, руководства, описания, API
|
Текстовый компонент Swing использует a Document
представлять его контент. События документа имеют место, когда контент документа изменяется всегда. Вы присоединяете слушателя документа текстового компонентного документа, а не текстового компонента непосредственно. См.
Следующий пример демонстрирует события документа на двух компонентах простого текста.
CTRL-X
(сокращение).CTRL-C
(копия) и CTRL-V
(вставка).Можно найти код демонстрационного примера в DocumentEventDemo.java
. Вот код обработки событий документа демонстрационного примера:
public class DocumentEventDemo ... { ...//where initialization occurs: textField = new JTextField(20); textField.addActionListener(new MyTextActionListener()); textField.getDocument().addDocumentListener(new MyDocumentListener()); textField.getDocument().putProperty("name", "Text Field"); textArea = new JTextArea(); textArea.getDocument().addDocumentListener(new MyDocumentListener()); textArea.getDocument().putProperty("name", "Text Area"); ... class MyDocumentListener implements DocumentListener { String newline = "\n"; public void insertUpdate(DocumentEvent e) { updateLog(e, "inserted into"); } public void removeUpdate(DocumentEvent e) { updateLog(e, "removed from"); } public void changedUpdate(DocumentEvent e) { //Plain text components do not fire these events } public void updateLog(DocumentEvent e, String action) { Document doc = (Document)e.getDocument(); int changeLength = e.getLength(); displayArea.append( changeLength + " character" + ((changeLength == 1) ? " " : "s ") + action + doc.getProperty("name") + "." + newline + " Text length = " + doc.getLength() + newline); } }
Слушатели документа не должны изменить содержание документа; изменение уже полно к тому времени, когда слушатель уведомляется относительно изменения. Вместо этого запишите пользовательский документ, который переопределяет insertString
или remove
методы, или оба. См. Прислушивание к Изменениям на Документе для деталей.
DocumentListener
не имеет никакого адаптера class.
Метод | Цель |
---|---|
changedUpdate (DocumentEvent) | Вызванный, когда стиль части текста в слушаемом изменения документа. Этот вид события запускается только от a StyledDocument — a PlainDocument не запускает эти события. |
|
Вызванный, когда текст вставляется в слушаемый документ. |
|
Вызванный, когда текст удаляется из слушаемого документ. |
Каждый метод события документа передают объект, который реализует DocumentEvent
интерфейс. Как правило, это - экземпляр DefaultDocumentEvent
AbstractDocument
.
Метод | Цель |
---|---|
|
Возвращает документ, который запустил событие. Отметьте что DocumentEvent интерфейс не наследовался от EventObject . Поэтому, это не наследовалось getSource метод. |
|
Возвращает длину изменения. |
|
Возвращает расположение в пределах документа первого измененного символа. |
|
Возвраты детализируют о том, что элементы в документе изменили и как. ElementChange DocumentEvent интерфейс. |
|
Возвращает тип изменения, которое произошло. EventType DocumentEvent интерфейс, который перечисляет возможные изменения, которые могут произойти на документе: вставьте текст, удалите текст, и измените стиль текста. |
Следующая таблица приводит примеры тот документ использования слушатели.
Пример | Где Описано | Примечания |
---|---|---|
DocumentEventDemo |
Этот раздел | Отчеты все события документа, которые происходят на документах и для текстового поля и для текстовой области. Один слушатель слушает и текстовые компоненты и использует клиентское свойство на документе, чтобы определить который компонент, запущенный событие. |
TextComponentDemo |
|
Обновляет журнал изменений каждый раз текст в слушаемом изменения документа. Документ в этом примере поддерживает разработанный текст, таким образом, changedUpdate вызывается в этом примере. Требует этого дополнительного исходного файла: DocumentSizeFilter |