У меня есть JTable
с 2 ячейками, которые пользователь может редактировать / вводить данные. Первый столбец является столбцом имени, и значение должно быть уникальным, например, они не могут ввести повторяющееся имя. Второй столбец - это столбец типа int, который имеет диапазон ввода от 1 до 999.
В обоих случаях я связал пользовательские реализации DefaultCellEditor
со связанными типами классов String.class
и Integer.class
.
Что я пытаюсь понять, так это где проверка дубликатов должна быть сделана. В то время как редактор ячеек для класса Integer может проверить, что пользователь ввел 1-999, должен ли редактор ячеек проверять модель на предмет уникальности введенного значения или эта проверка должна выполняться в модели таблицы после ячейка потеряла фокус, а метод stopCellEditing()
редактора ячеек был вызван и делегирован модели?
В данный момент я подключил модель к редакторам своих ячеек и выполняю там проверку дубликатов, которая при отражении кажется неправильной.
Мне нужно убедиться, что после того, как ячейка потеряла фокус, значение проверяется, и если значение считается недействительным, ячейка восстанавливает фокус, и недопустимый текст полностью выбирается, чтобы они могли просто начать печатать.