Помощь в написании вашего собственного javax.swing.text.Document - PullRequest
3 голосов
/ 25 марта 2010

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

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

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

Ответы [ 3 ]

3 голосов
/ 25 марта 2010

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

По сути, вы можете добавить свой DocumentListener к документу и реагировать на изменения или написать собственную реализацию документа. Использовать AbstractDocument это должно быть просто, потому что в нем есть только пара абстрактных методов, которые вам нужно реализовать. В качестве альтернативы вы можете выбрать подкласс PlainDocument и переопределить только определенный набор интересующих вас методов.

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

Дайте мне знать, если вам нужно больше деталей.

2 голосов
/ 15 апреля 2010

Существует EditorKit - Документ - Учебное пособие по отношениям с представлениями , которое дает некоторое представление о реализации пользовательских javax.swing.text.Document.

2 голосов
/ 25 марта 2010

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

...