8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

在 JTextField 中输入 Unicode 字符

Dou Xu-MSFT 2月前

52 0

在大多数情况下,我可以通过键入 ctrl-shift-u 然后键入十六进制字符代码来输入 Unicode 字符。例如,通过在浏览器中键入 ctrl-shift-u 2264,我得到 \'≤&qu...

ctrlshiftu--然后键入十六进制字符代码来输入 Unicode 字符alt并在数字键盘上输入字符的十进制代码。我不太了解 macOS,但我认为有类似的键盘组合可以通过代码输入 Unicode 字符。

当我运行 Java 程序时,特别是使用 这个演示 程序时,这些通过键盘输入 Unicode 字符的方法 JTextField 似乎都不起作用。我可以从其他应用程序 (gedit) 复制字符并粘贴。但我还没有找到直接输入它们的方法,无论是通过试验还是通过搜索互联网。

有没有办法让 JTextField 控件接受 Unicode 字符的键代码(大概是特定于操作系统的)?

在 Linux 上重现此问题的步骤

  1. 编译并运行以下应用程序:
import javax.swing.*;
class JTextFieldExample
{
    public static void main(String args[]) {
        JFrame f = new JFrame("JTextField Example");
        JTextField t = new JTextField("");
        t.setBounds(10, 10, 400, 30);
        f.add(t);
        f.setSize(420,90);
        f.setLayout(null);
        f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        f.setVisible(true);
    }
}
  1. ctrl + shift + U 2264 + Enter .
  2. 您将看到 \'≤\' 字符无法进入 JTextField。
  3. 现在在文本编辑器中按下相同的按键序列,选择 \'≤\' 字符并将其复制到剪贴板,然后将其粘贴到 JTextField 中。您将看到它在那里正确输入,证明 JTextField 实际上可以显示该字符,但它无法正确处理按键序列。

编辑:由于很多人似乎感兴趣,我正在使用截至 2024.08.22 更新的 Debian Testing(Trixie)。

$ java --version
openjdk 23-ea 2024-09-17
OpenJDK Runtime Environment (build 23-ea+34-Debian-1)
OpenJDK 64-Bit Server VM (build 23-ea+34-Debian-1, mixed mode, sharing)

关于 windows 的信息是另一个用户发给我的,关于 mac 的信息我没有。希望这些信息对你有帮助。

帖子版权声明 1、本帖标题:在 JTextField 中输入 Unicode 字符
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Dou Xu-MSFT在本站《java》版块原创发布, 转载请注明出处!
最新回复 (0)
  • (4)我使用的是Ubuntu 20.04 Java 21,测试了TextInputDemo.java和SpringUtilities.java,没有问题,我的pom.xml已经设置

返回
作者最近主题: