Похоже на виртуальную клавиатуру: -)
Почти тот же код работает для меня.Я бы предложил следующее:
Передать целевой объект JTextField
(в вашем случае receiver
) в качестве параметра source
конструктору KeyEvent
, то есть:
receiver.dispatchEvent(new KeyEvent(receiver,
KeyEvent.KEY_TYPED, System.currentTimeMillis(),
modifiers, KeyEvent.VK_UNDEFINED, keyChar);
Убедитесь, что у вашей цели JTextField
есть фокус.
Редактировать:
ПростоЧтобы проверить приведенное выше предложение, я протестировал этот фрагмент кода:
Frame frame = new Frame();
TextField text = new TextField();
frame.add(text);
frame.pack();
frame.setVisible(true);
text.dispatchEvent(new KeyEvent(frame,
KeyEvent.KEY_TYPED, 0,
0,
KeyEvent.VK_UNDEFINED, 'H'));
Это не работает, однако, если последняя строка изменена следующим образом (целевой компонент как параметр source
параметра KeyEvent
конструктор), отлично работает:
text.dispatchEvent(new KeyEvent(text,
KeyEvent.KEY_TYPED, 0,
0,
KeyEvent.VK_UNDEFINED, 'H'));