Вот очень специфический вопрос кодирования:
Недавно меня попросили сохранить старый работающий код графического интерфейса Java Swing на работе, и я столкнулся с этой проблемой:
Я прикрепил свой собственный подкласс InputVerifier под названием MyFilenameVerifier к JTextField (но для этих целей он также может быть любым JComponent). Я переопределил метод verify () так, что он вызывает super.verify(input)
(где input - это параметр JComponent для verify ()). Если super.verify(input)
возвращается false, я делаю:
input.setBorder(BorderFactory.createLineBorder(Color.RED));
Это соглашение, используемое во всем пользовательском интерфейсе этого приложения, которое началось задолго до меня, поэтому у меня нет большого выбора, кроме как использовать другие способы привлечь внимание пользователей (жаль, что я не сделал). Так оно и работает.
Проблема в том, что, как только пользователь возвращается и вводит что-то допустимое в текстовое поле, мне нужен способ установить его обратно на границу по умолчанию (вместо того, чтобы просто сказать, установить его в Color.GRAY или что-то другое, что другого цвета от своей первоначальной границы). Другими словами, мне нужен способ сказать: «Удалите лишнее украшение и вернитесь к нормальному состоянию» или просто установите границу по умолчанию.