Mac OSX and German Keyboard Layout (Y/Z)
Tom Schindl
tom.schindl at bestsolution.at
Fri Feb 26 08:05:15 UTC 2016
Hi Kevin,
I filed https://bugs.openjdk.java.net/browse/JDK-8150709
Tom
On 26.02.16 02:39, Kevin Rushforth wrote:
> Hi Tom,
>
> Please file a bug so we can look at it.
>
> Thanks.
>
> -- Kevin
>
>
> Tom Schindl wrote:
>> 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