簡體   English   中英

如何檢測鍵盤語言?

[英]How to detect keyboard language?

對於下面的Java語言(NetBeans)GUI,

在此處輸入圖片說明

我想自動更改鍵盤輸入語言模式-

“ K Box”獲得焦點時(例如,光標位於“ K Box”中)向韓語顯示,

轉換為英文當“ E Box”獲得焦點時(即光標位於“ E Box”中)

(僅供參考,通過按向右ALT鍵更改鍵盤輸入語言模式)。

如果那不可能,我想檢測它是處於英語輸入模式還是朝鮮語輸入模式。 然后,我將創建一個標簽,告知用戶當前的輸入語言模式,這樣他們就無需在英語模式下輸入韓語時犯錯誤。

我定義了以下方法,並使用它來更改特定組件的鍵盤語言。 在代碼“ ControlEnums.Languages”中是我自己的枚舉類型,因此您暫時可能會忽略它。

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) {
    }
}

我發現上述方法“ setKeyboardLanguage”效果很好。 有人對我的研究有更好的主意嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM