FULL PRODUCT VERSION : java version "1.8.0_101" Java(TM) SE Runtime Environment (build 1.8.0_101-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode) ADDITIONAL OS VERSION INFORMATION : Linux alcibiade 4.4.0-57-generic #78-Ubuntu SMP Fri Dec 9 23:50:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux EXTRA RELEVANT SYSTEM CONFIGURATION : French AZERTY keyboard A DESCRIPTION OF THE PROBLEM : Dead key (ie. ^ or ��) are not detected with KeyEvent events. Therefore it's impossible to write characters like "^" or "��" or "��". STEPS TO FOLLOW TO REPRODUCE THE PROBLEM : Write a simple program which displays the key code (see source code), an hit: - "^" ; - "^" + "e". EXPECTED VERSUS ACTUAL BEHAVIOR : EXPECTED - - "^" : code=DEAD_CIRCUMFLEX; text=^ - "^" + "e" : code=UNDEFINED; text=�� ACTUAL - - "^" : code=UNDEFINED; text= - "^" + "e" : code=E; text=e REPRODUCIBILITY : This bug can be reproduced always. ---------- BEGIN SOURCE ---------- package sample; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.input.KeyEvent; import javafx.scene.layout.BorderPane; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) throws Exception { BorderPane pane = new BorderPane(); Label pressed = new Label("Press a key..."); pane.setLeft(pressed); Scene scene = new Scene(pane, 200, 50); primaryStage.setScene(scene); primaryStage.show(); scene.addEventFilter(KeyEvent.KEY_PRESSED, e -> pressed.setText( "Key pressed:\ncode: " + e.getCode() + "\ntext: " + e.getText())); } public static void main(String[] args) { launch(args); } } ---------- END SOURCE ----------
|