2013-12-09 4 views
0

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

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

ответ

2

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

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

Смежные вопросы