2016-10-08 6 views
0

Für eine (NetBeans) GUI in Java-Sprache unten,Wie erkennt man die Sprache der Tastatur?

enter image description here

I Tastatureingabe Sprachmodus automatisch geändert werden soll -

auf Koreanisch, wenn die "K-Box" Fokus erhält (dh Cursor in "K-Box") ist,

auf Englisch Wenn die "E-Box" Fokus erhält (dh Cursor in "E-Box" ist)

(FYI, Tastatureingabe Sprachmodus durch Drücken r geändert wird Rechts-ALT-Taste).

Wenn das nicht möglich ist, möchte ich feststellen, ob es im englischen Eingabemodus oder im koreanischen Eingabemodus ist. Dann mache ich eine Beschriftung, die den Benutzern den aktuellen Eingabesprachemodus anzeigt, damit sie nicht im koreanischen Modus Koreanisch falsch schreiben müssen.

+0

Sie haben die Eigenschaften 'user.country' und 'user.language'. (Sieh dir 'System.getProperty()' an.) –

+0

@ Jean-BaptisteYunès ist das, was Swing verwendet? Ich würde erwarten, dass irgendwann die Betriebssystemeinstellungen im Spiel sind. –

+0

Die Ergebnisse wie folgt: System.getProperty ("user.language ") -> ko, System.getProperty (" user.country ") -> KR. Seltsamerweise ist die Tastatur im englischen Modus, bis ich die rechte Alt-Taste drücke. –

Antwort

0

Ich definierte folgende Methode und damit die Tastatursprache für eine bestimmte Komponente zu ändern. Im Code 'ControlEnums.Languages' ist mein eigener Enum-Typ, so dass Sie ihn für den Moment ignorieren können.

public static void setKeyboardLanguage(Component comp, 
    ControlEnums.Languages language) 
{ 
    try { 
     InputContext inCtx = comp.getInputContext(); 
     Character.Subset[] subset = new Character.Subset[1]; 

     if (language == KOREAN) { 
      // for Korean input mode 
      subset[0] = Character.UnicodeBlock.HANGUL_SYLLABLES; 
     } else { 
      // for English input mode 
      subset = null; 
     } 
     inCtx.setCharacterSubsets(subset); 
    } catch(Exception e) { 
    } 
} 

fand ich die obige Methode 'setKeyboardLanguage' ziemlich gut funktioniert. Hat jemand eine bessere Idee zu meiner Forschung?

Verwandte Themen