Для получения зафиксированного текста из Windows IME требуется нажать Enter в JavaFX.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Для получения зафиксированного текста из Windows IME требуется нажать Enter в JavaFX.

Сообщение Anonymous »

Я хочу предоставить возможность вводить китайские символы в JavaFX в Windows. Это мой тестовый код для TextArea:

Код: Выделить всё

public class Foo extends Application {

public static void main(String[] args) {
launch(args);
}

@Override
public void start(Stage primaryStage) throws Exception {
var textArea = new TextArea();
textArea.setOnInputMethodTextChanged(e -> {
System.out.println("Event:" + e.getCommitted().length());
textArea.appendText(e.getCommitted());
});
VBox.setVgrow(textArea, Priority.ALWAYS);
var root = new VBox(textArea);
var scene = new Scene(root, 400, 400);
primaryStage.setScene(scene);
primaryStage.show();
}
}
И вот результат:
[img]https://i.sstatic.net /XVDJincg.gif[/img]

Как это работает:
  • Пользователь начинает вводить символы.
  • Появится Windows IME.
  • Пользователь выбирает необходимый символ, например, нажав «2».
  • IME исчезает.
  • Ничего не происходит, пока пользователь не нажмет Enter .
  • Выбранный символ добавлен.
Я не знаю китайского языка, но попробовал IME с Firefox, и он работает без #5. Может ли кто-нибудь сказать, как это сделать, не заставляя пользователя нажимать Enter для каждого символа?

Подробнее здесь: https://stackoverflow.com/questions/792 ... -in-javafx
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»