Недавно у меня возникла странная проблема с Java JTextField. Когда я запускаю следующий код (см. Ниже), ввод "0" в текстовое поле сначала отправляет действие вставки, а затем вводит "0" . Например, если "текст" скопирован в буфер обмена, "text0" вводится при вводе "0" . Аналогично, ввод "4" заменяет предыдущий символ "4" (я предполагаю, что это действие удаления, затем набирается "4" ). Ввод "7" очищает текстовое поле до ввода "7".
Вот код:
import javax.swing.JFrame;
import javax.swing.JTextField;
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame();
JTextField text = new JTextField();
frame.add(text);
frame.setSize(500, 500);
frame.setVisible(true);
}
}
Проблема возникает в Red Hat Linux (доступ к ней осуществляется с помощью VNC из Windows XP); все работает как ожидается в Window XP.
Обновление: проблем с программой на Ubuntu тоже нет. Я также пробовал использовать разные клавиатуры и зрители VNC.
Обновление 2: Версии Java
Для Red Hat:
java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.7) (rhel-1.17.b17.el5-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)
Для XP:
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
Java HotSpot(TM) Client VM (build 23.1-b03, mixed mode, sharing)
Обновление 3. Пробовал запуск программы на трех разных компьютерах Red Hat (все в одной группе на работе) и дополнительно попытался запустить ее с другого компьютера XP и перезапустить.
Обновление 4. Сегодня я пришел на работу, чтобы найти, что проблема волшебно ушла. Тем не менее, было бы неплохо узнать, почему это произошло в первую очередь, чтобы я (и кто-то другой, кто сталкивается с этой странной проблемой) знает, как это исправить в будущем.