Я пишу программу с использованием Swing, которая включает в себя форму. Когда форма отправлена, у меня есть функция, которая ее проверяет, и любые недопустимые поля должны быть выделены красным цветом для исправления, а затем снова вернутся к границе по умолчанию.
В настоящее время я использую следующий метод для получения границы JTextField
по умолчанию.
private Border defaultBorder = new JTextField().getBorder();
Есть ли способ сделать это без создания ненужного объекта?
Что еще более важно, как изменить цвет границы, не влияя на ее другие свойства?
Я бы добавил текстовое поле к панели и установил границу панели.
Таким образом, мы можем оставить границу текстового поля нетронутой, и она все равно будет иметь соответствующую границу для этой PLAF и ситуации (сфокусированной и т.д.).
UIManager.getBorder("Textfield.border")
зависимости от внешнего вида. Вы также можете использовать что-то вродеJLayer
для рисования на свой пользовательский интерфейс, например