在大多数情况下,我可以通过键入 ctrl-shift-u 然后键入十六进制字符代码来输入 Unicode 字符。例如,通过在浏览器中键入 ctrl-shift-u 2264,我得到 \'≤&qu...
ctrlshiftu--然后键入十六进制字符代码来输入 Unicode 字符alt并在数字键盘上输入字符的十进制代码。我不太了解 macOS,但我认为有类似的键盘组合可以通过代码输入 Unicode 字符。
当我运行 Java 程序时,特别是使用 这个演示 程序时,这些通过键盘输入 Unicode 字符的方法 JTextField
似乎都不起作用。我可以从其他应用程序 (gedit) 复制字符并粘贴。但我还没有找到直接输入它们的方法,无论是通过试验还是通过搜索互联网。
有没有办法让 JTextField
控件接受 Unicode 字符的键代码(大概是特定于操作系统的)?
在 Linux 上重现此问题的步骤
-
编译并运行以下应用程序:
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);
}
}
-
按
ctrl + shift + U 2264 + Enter
.
-
您将看到 \'≤\' 字符无法进入 JTextField。
-
现在在文本编辑器中按下相同的按键序列,选择 \'≤\' 字符并将其复制到剪贴板,然后将其粘贴到 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 的信息我没有。希望这些信息对你有帮助。
在 JTextField 中输入 Unicode 字符
下载声明:
本站所有软件和资料均为软件作者提供或网友推荐发布而来,仅供学习和研究使用,不得用于任何商业用途。如本站不慎侵犯你的版权请联系我,我将及时处理,并撤下相关内容!