我的计算机辅助翻译软件使用JavaFX开发,从2018年开始就遇到不少问题。
2018年时,Java 8在较早的Windows 10系统上存在中文输入法不跟随的问题,需要安装搜狗智慧版。后来Windows 10升级后,才没有了这个问题。
然后毕竟是翻译软件,要处理各种语言的支持,后来又有用户提出对藏语的输入不好。
在新的JavaFX 23中,我又发现阿拉伯语只有按住SHIFT时才能通过方向键左右移动光标,而在JavaFX 8中,可以直接用方向键移动光标。
macOS在2018年时则存在输入中文标点都变成半角的问题,导致我必须给软件加个功能,在输入时自动替换字符。所幸在新的版本中得到修复。
再提到Linux,它的支持就更糟了。虽然Fcitx在一般的Linux 应用中没有什么问题,但Java应用就有很多问题。比如JetBeans的IntelliJ IDE,就存在不跟随光标的问题,有人通过给JBR打补丁的方式解决这一问题,但似乎没有什么人用JavaFX的应用,这个问题一直没有解决。
JavaFX应用在Linux甚至默认无法使用输入法,必须在运行时通过-Djdk.gtk.version=2指定GTK版本为2,而新版本的JavaFX已经移除了GTK2的支持。而输入法不跟随光标的问题也同样存在。
使用系统原生或者Web技术开发桌面应用一般不会碰到这些问题,但要开发一个跨平台的应用,我还是喜欢用JavaFX,好在主流系统在输入上的支持还算可以,我的用户基本没有抱怨输入法的问题。