欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ubuntu18.0下javafx11+程序无法输入中文的解决方案

程序员文章站 2022-05-18 16:37:14
...

本文转载自:

[客户端开发] Ubuntu18.0下javafx11+程序无法输入中文的解决方案

 

前言

这个问题一直在出现,一直在发愁该怎么搞。。

网络上面有很多这样的问题,例如:

Ubuntu18.0下javafx11+程序无法输入中文的解决方案

 

诸如此类的。。。

我一直纳闷,只看到问题没看到解决方案。。。

 

然后直到有一个人问为什么没办法输入日文时候,我才发现了一些疑问:

 

https://*.com/questions/58763342/how-to-input-japanese-to-textarea-in-javafx-on-linux

 

下面是截图:

Ubuntu18.0下javafx11+程序无法输入中文的解决方案

 

然后这位兄弟找到了解决方案:

Ubuntu18.0下javafx11+程序无法输入中文的解决方案

 

好了,我们追踪下去,可以发现javafx在ubuntu18.04下面是有bug的,看看怎么写:

 

Ubuntu18.0下javafx11+程序无法输入中文的解决方案

 

---原来在ubuntu18.04下面用的gtk版本是2,如果是3的话会有未知错误---说来说去还真的是runtime的锅了。

 

好了,我们试试在程序上面添加:

  java -Djdk.gtk.version=2 ...

试试:

Ubuntu18.0下javafx11+程序无法输入中文的解决方案

 

备注:你可能会看到一行红字:

Failed to load module "canberra-gtk-module"

 

 

好了,没关系,运行:

sudo apt install libcanberra-gtk-module

然后安装成功:

Ubuntu18.0下javafx11+程序无法输入中文的解决方案

 

然后,你会看到--分别测试jfoenix文字输入控件以及自带的textfied控件,都能正常输入。

Ubuntu18.0下javafx11+程序无法输入中文的解决方案

 

Ubuntu18.0下javafx11+程序无法输入中文的解决方案

 

总结

针对ubuntu18.0.4来说,运行程序---打包时候请指定默认的gtk version=2 ---

 

-Djdk.gtk.version=2

 

相关标签: 客户端开发