我面临的问题是当我有一个输入(TextField、TextArea 等)并且我试图插入一些包含重音字符的希腊单词时。像“Γìτα”(猫)这样的词很好用。不幸的是,我无法输入像“Ταϊτή”(塔希提岛)这样的词。如果我尝试复制并粘贴它或对其进行硬编码,它工作正常,但是当我尝试使用以下组合来写这个词时
Shift + ';' +我
应该产生'ϊ',而不是我得到'¨ι'
这是一个例子:
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class Example extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
VBox mainBox = new VBox(10);
mainBox.setPadding(new Insets(20));
mainBox.setAlignment(Pos.CENTER);
// Ταϊτή = Tahiti
TextField field1 = new TextField("Ταϊτή");
TextField field2 = new TextField();
mainBox.getChildren().add(field1);
mainBox.getChildren().add(field2);
field1.setStyle("-fx-font-size:24px");
field2.setStyle("-fx-font-size:24px");
stage.setScene(new Scene(mainBox));
stage.show();
}
}
下图显示了我自己输入单词时的结果
安装的 JRE:jre1.8.0_221
安装的JDK:jdk1.8.0_221
为了将 IDE (Eclipse) 排除在问题的起因之外,我在 SceneBuilder 上仅使用一个 AnchorPane 和一个 TextField 测试了此行为,我在那里也遇到了同样的问题。但为了便于讨论,我在 Eclipse 中使用编辑器和所有设置来使用编码 UTF-8。
所以我想问:这是当前 JRE/JDK 的错误吗?如果是,是否有我可以使用的众所周知的解决方案,或者我应该只使用 Listener 来捕获输入并自己更正?
编辑:正如 Sedrick 指出的那样,我可以使用 alt + 0 2 3 9 的组合,但这将产生一种不同类型的字母,它与希腊字母相似但不相同。看下图。不幸的是,这不是我的客户想要的行为,因为输入它的正确方法(用希腊键盘)是使用:Shift + ';' + ι ,其中“ι”是英文字母“i”。
qq_遁去的一_1
蛊毒传说
相关分类