Wie erkennt man, ob sich eine Benutzer-Tastatur in AZERTY in Java befindet?

8

Es gibt derzeit einen Fehler in JavaFX ( Ссылка , kostenlose Registrierung erforderlich), der es so macht Wenn Sie ein Azerty-Tastaturlayout verwenden und ein Accelerator mit Z angeben, wird es auf dem Mac nur beim Eintippen von W ausgelöst. Ich muss diesen Fehler umgehen, da ich mein Produkt jetzt freigeben muss.

Also würde ich gerne Mac + Azerty finden und wenn ja, ändere die Beschleunigung auf W. Ich weiß, wie man den Mac erkennt, und ich weiß, wie man das Gebietsschema der Tastatur erkennt (mit InputContext # getLocale ()), aber wie Ich weiß, ob das aktuelle Gebietsschema ein korrektes Tastaturlayout aufweist. Muss ich eine fest codierte Liste bekannter Locales überprüfen, die ein Azerty-Layout verwenden? Wenn ja, wo würde ich eine solche Liste finden?

    
Nicolas Mommaerts 09.06.2013, 21:04
quelle

1 Antwort

2

Passen Sie einfach nicht auf eine fest codierte Liste bekannter Locales auf, da viele Leute ein französisches Gebietsschema mit einer Tastatur haben, die nicht mit dem Gebietsschema übereinstimmt, wenn sie ihren Computer in den USA gekauft haben und in Quebec mit einem verwenden französische Schnittstelle. Ich persönlich bin am schlimmsten, da ich ein Dvorak-Layout habe ... ;-) Und ich möchte mir nur vorstellen, wie viele Varianten des spanisch-basierten Layouts es gibt ...

Mein bester Ratschlag wäre, nicht etwas zu entdecken, das kaum zu erkennen ist, aber einige Standard-Tastaturbelegungen für (z. B.) QWERTY-Tastaturen zu erstellen, die für die meisten Benutzer funktionieren würden, und ein Konfigurationsfenster zu erstellen Dadurch kann Ihr Benutzer die Tastenzuordnung für Ihre Anwendung ändern, indem Sie die neuen Tasten eingeben, wenn ihnen die Standardeinstellungen nicht gefallen.

bearbeiten:

ah ... das kann in der Tat ein anderes Problem sein ... vielleicht könntest du trotzdem eine Combobox-Präferenz für alle Nicht-US-Tastaturen auf Macosx machen, die Schlüssel mit einem Modifikator haben, die geändert werden?

Um Ihre Frage "geradeheraus" zu beantworten, hier ein paar Ergebnisse, die ich bei Google gefunden habe:

führt beide zu java.awt.im.InputContext :

%Vor%

Ich habe das nie in Java probiert, also kann ich dir nicht mehr helfen als mit meinem Google-Fu, aber ich hoffe wirklich, dass das hilft :-)

    
zmo 09.06.2013 21:12
quelle

Tags und Links