Как получить объект, вызвавший DocumentFilter

Я делаю игру судоку, у меня есть объекты 9x9 типа "ячейка" (класс расширяет JTextField), я хочу предотвратить фокусировку на других объектах JTextField, если пользователь не соответствует правилам игры - его ввод (1-9) не будет быть в той же строке или в том же «блоке». Для этого мне нужно знать конкретный объект, на котором он сосредоточен.

Один из способов, которым я думал сделать это, - использовать DocumentFilter. Я уже отфильтровал ввод до цифр и до 1 длины, но я понятия не имею, как получить этот объект «ячейки», на котором он сосредоточен, я почти уверен, что методы DocumentFilter каким-то образом получают этот объект, но я не мог найти, как, любая помощь ? Спасибо.


person Yevgeni    schedule 09.12.2013    source источник


Ответы (1)


DocumentFilter имеет ссылку на Document, но Documnets — это просто модели. Один и тот же экземпляр документа может быть назначен более чем одному текстовому компоненту. Таким образом, вы не сможете получить доступ к JTextField.

Вы можете расширить DocumentFilter и добавить источник JTextField напрямую. Просто создайте столько, сколько вам нужно DocumentFilter для каждого вашего текстового поля.

person StanislavL    schedule 09.12.2013