|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Текстовый компонент Swing использует a Document представлять его контент. События документа имеют место, когда контент документа изменяется всегда. Вы присоединяете слушателя документа текстового компонентного документа, а не текстового компонента непосредственно. См.
Следующий пример демонстрирует события документа на двух компонентах простого текста.

CTRL-X (сокращение).CTRL-C (копия) и CTRL-V (вставка).Можно найти код демонстрационного примера в
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 интерфейс. Как правило, это - экземпляр , определенный в AbstractDocument.
| Метод | Цель |
|---|---|
Возвращает документ, который запустил событие. Отметьте что DocumentEvent интерфейс не наследовался от EventObject. Поэтому, это не наследовалось getSource метод. |
|
| Возвращает длину изменения. | |
| Возвращает расположение в пределах документа первого измененного символа. | |
Возвраты детализируют о том, что элементы в документе изменили и как. интерфейс, определенный в пределах DocumentEvent интерфейс. |
|
Возвращает тип изменения, которое произошло. class, определенный в пределах DocumentEvent интерфейс, который перечисляет возможные изменения, которые могут произойти на документе: вставьте текст, удалите текст, и измените стиль текста. |
Следующая таблица приводит примеры тот документ использования слушатели.
| Пример | Где Описано | Примечания |
|---|---|---|
DocumentEventDemo |
Этот раздел | Отчеты все события документа, которые происходят на документах и для текстового поля и для текстовой области. Один слушатель слушает и текстовые компоненты и использует клиентское свойство на документе, чтобы определить который компонент, запущенный событие. |
TextComponentDemo |
Обновляет журнал изменений каждый раз текст в слушаемом изменения документа. Документ в этом примере поддерживает разработанный текст, таким образом, changedUpdate вызывается в этом примере. Требует этого дополнительного исходного файла: DocumentSizeFilter |