Есть небольшое оконное приложение на Swing
. На форме JFrame form
расположены текстовые поля и объект jSpinner spinner
. При завершении ввода нового значения в spinner
по нажатию клавиши Enter значения в текстовых полях должны быть изменены (новые значения берутся из заранее созданной коллекции ArrayList
по индексу, зависящему от введённого в spinner
значения).
Проблема в навешивании слушателя на нужный объект. Если делать так, как показано в коде ниже, KeyListener
работает некорректно: вместо того, чтобы активировать событие, первое нажатие клавиши Enter просто завершает ввод нового значения. Уже только если повторно нажать Enter при активном поле spinner
, произойдёт обновление формы.
((JSpinner.DefaultEditor)form.spinner.getEditor()).getTextField()
.addKeyListener(new SpinnerEnterPressed());
обработчик:
public class SpinnerEnterPressed implements KeyListener
{
public void keyPressed(KeyEvent evt)
{
if(evt.getKeyCode() == KeyEvent.VK_ENTER)
{
//обновить значения в форме
refreshForm();
}
}
public void keyReleased(KeyEvent evt){}
public void keyTyped(KeyEvent evt){}
}
В принципе можно обойтись навешенным на spinner
слушателем ChangeListener
, но тогда refreshForm()
срабатывает каждый раз при смене значения в поле spinner
'a, чего хотелось бы избежать, например, чтобы программа не обновляла лишний раз значения в полях при прокрутке spinner
'a стрелочками.
Существует ли рабочее решение для KeyListener
?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Делаю сейчас дизайн для сайта и никак не могу определиться с нужными тегами
Я пытаюсь создать эффект «источника света» в SVG, посредством чего вырезаю часть темной области, которая будет покрывать изображение
Помогите пожалуйста с валидацией формы на jQuery! Чтобы проверялось перед отправкойПри наведении на картинку появлялось окошечко об ошибке