Помощь в написании собственного javax.swing.text.Document

StackOverflow https://stackoverflow.com/questions/2516638

  •  22-09-2019
  •  | 
  •  

Вопрос

Я пишу Java TextComponent, в котором базовый документ имеет некоторую структуру.Оно очень короткое, в основном одна строка.Мне нужно иметь возможность переопределить реакцию на вставку или удаление символов в некоторых частях документа.

Мой первоначальный подход заключался в реализации javax.swing.text.Document, но, похоже, это требует разработки множества связанных классов (Element, EditorKit, View), и, похоже, не так уж много примеров или руководств о том, как это сделать.Существует множество способов использования предопределенных реализаций.

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

Это было полезно?

Решение

Если вы просто хотите реагировать на вставку/удаление символов, возможно, лучшим подходом будет DocumentFilter.Это позволит вам предотвратить вставку символов в документ по вашему желанию.Прочтите API JTextField и перейдите по ссылке на учебник Swing «Возможности текстовых компонентов» для получения дополнительной информации.

Другие советы

Eсть Учебное пособие по Java Swing по использованию текстовых компонентов.

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

Учитывая ваши ограничения, вам нужно только как-то реагировать на вставку/удаление символов, и лучше всего должно работать добавление прослушивателя в документ.

Дайте мне знать, если вам нужна более подробная информация.

Есть EditorKit — Документ — Учебное пособие по связям представлений, что дает некоторое представление о реализации пользовательского javax.swing.text.Document.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top