Mac OSX and German Keyboard Layout (Y/Z)
Tom Schindl
tom.schindl at bestsolution.at
Thu Feb 25 22:31:26 UTC 2016
Hi,
Anyone any insights? Any Swing Savy dev around who knows how Swing
manages to deliver the right key?
Tom
On 22.01.16 13:30, Tom Schindl wrote:
> Hi,
>
> I just discovered that the KeyCode reported by JavaFX on OS-X with a
> german keyboard layout (where eg z and y are interchanged) is wrong.
>
> If you press a Z you get as the KeyCode.Y and for Y you get KeyCode.Z -
> this Y/Z problem. I don't think that I as a java-dev need to deal with
> that and if you look at other toolkits (swing, swt) they handle this
> transparently for me!
>
> I've attached you a javafx and swing application and you'll notice that
> swing reports always the correct keycode (no matter if my keyboard
> layout is english or german) and javafx is wrong on german keyboards.
>
>
> FX:
>> package application;
>>
>> import javafx.application.Application;
>> import javafx.scene.Scene;
>> import javafx.scene.control.TextField;
>> import javafx.scene.layout.BorderPane;
>> import javafx.stage.Stage;
>>
>>
>> public class Main extends Application {
>> @Override
>> public void start(Stage primaryStage) {
>> try {
>> BorderPane root = new BorderPane();
>>
>> TextField f = new TextField();
>> f.setOnKeyPressed( e -> {
>> System.err.println("KeyCode: " + e.getCode());
>> });
>>
>> root.setCenter(f);
>>
>> Scene scene = new Scene(root,400,400);
>> primaryStage.setScene(scene);
>> primaryStage.show();
>> } catch(Exception e) {
>> e.printStackTrace();
>> }
>> }
>>
>> public static void main(String[] args) {
>> launch(args);
>> }
>> }
>
> Swing:
>> package application;
>>
>> import java.awt.event.KeyEvent;
>> import java.awt.event.KeyListener;
>>
>> import javax.swing.JFrame;
>> import javax.swing.JTextField;
>>
>> public class SampleSwing extends JFrame {
>> public SampleSwing() {
>> JTextField textField = new JTextField();
>> textField.addKeyListener(new KeyListener() {
>>
>> @Override
>> public void keyTyped(KeyEvent e) {
>> // TODO Auto-generated method stub
>>
>> }
>>
>> @Override
>> public void keyReleased(KeyEvent e) {
>> // TODO Auto-generated method stub
>>
>> }
>>
>> @Override
>> public void keyPressed(KeyEvent e) {
>> System.err.println((char)e.getKeyCode());
>> }
>> });
>> getContentPane().add(textField);
>> }
>>
>> public static void main(String[] args) {
>> new SampleSwing().setVisible(true);
>>
>> }
>> }
>
>
>
> Tom
>
--
Thomas Schindl, CTO
BestSolution.at EDV Systemhaus GmbH
Eduard-Bodem-Gasse 5-7, A-6020 Innsbruck
http://www.bestsolution.at/
Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck
More information about the openjfx-dev
mailing list