gpt4 book ai didi

java - 小键盘的 JTextField 问题

转载 作者:IT老高 更新时间:2023-10-28 20:48:11 42 4
gpt4 key购买 nike

我最近遇到了一个关于 Java JTextField 的奇怪问题。当我运行以下代码(见下文)时,在文本字段中输入“0”首先发送粘贴操作,然后输入“0”。例如,如果将“text”复制到剪贴板,则当我输入“0”时会输入“text0”。同样,输入“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 上(从 Windows XP 使用 VNC 访问);一切都在 Window XP 上按预期运行。

更新:Ubuntu 上的程序也没有问题。我也尝试过使用不同的键盘和 VNC 查看器。

更新 2:Java 版本

对于红帽:

    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:今天我上类时发现问题已经神奇地消失了。但是,很高兴知道为什么首先会发生这种情况,以便我(以及许多遇到这个奇怪问题的其他人)知道将来如何解决它。

最佳答案

尝试将此代码放在程序的开头。

KeyboardFocusManager.setCurrentKeyboardFocusManager(new DefaultKeyboardFocusManager(){
public boolean dispatchKeyEvent(KeyEvent e) {
if (e.getKeyLocation() == KeyEvent.KEY_LOCATION_NUMPAD){
return true;
}
return super.dispatchKeyEvent(e);
}
});

关于java - 小键盘的 JTextField 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11418540/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com