Re: [問題] Swing 的中文輸入問題 in MAC OS

看板java作者 (十年一夢)時間10年前 (2014/06/02 18:18), 10年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《pupuliao (pupu)》之銘言: : 最近 再嘗試把我的小程式 從windows 移植到 MAC OS 上 : 再針對 檔案路徑、換行符號 等等相容性修正後 : 找了網友測試 : 最後回報結果卻是 Swing UI 介面出了問題 : 似乎無法正確輸入中文.... : 詢問了google 似乎是 萬年老BUG 除了改用其他UI 系統之外? : 所以想來這裡請問一下 有在不更改UI架構下 解決問題嗎? : 簡單來說 就是 幫我測試MAC 版的朋友說 : 他是使用 YAHOO 輸入法 : 無法正常輸入中文 : swing.JTextField 的框格中,他輸入中文,會被分拆成 注音.... 我沒有使用 Yahoo 輸入法的經驗,但可以理解你朋友描述的現象。 發生這種情況應該只會在使用特定的輸入法,就是那種可以設定(或只能是)成 在文字輸入區域直接拼寫的模式的輸入法。 我都是使用 MacOS X(10.4/10.5/10.7/10.9)內建的輸入法,它也是這種模式(拼字 的過程是直接出現在 text 元件處),未出現你所描述的情況(在 CPython for MacOS 的 IDEL 界面裡輸入中文則是如同你描述的)。 故我認為這有可能不是 JRE 在不同的平台的差異所致(是不是 JRE implementation 有關尚不確定,我使用 Apple 改的 JRE 1.5/1.6 與 sun JRE 1.7 都沒問題就是), 而是跟你的程式如何去操作 text component 有關,也就是說你的程式在 Windows 上的 JRE 也可能會有相同的現象發生,只是你沒觀察到,比如你在 Windows 上使用 的輸入法是在額外的輸入法視窗做拼字過程,那麼就不會出現你描述的不正常情況。 建議先採下列步驟來更加確定問題的癥結處所在: 1. 在 MacOS/Windows 上試試其他的輸入法。 2. 你的 Java 程式是單純使用 JTextComponent 類的元件來收集文字 input 嗎? 有沒有使用客制的 Document 或是利用 listener 去觀察 Document 的變化並 做些會影響 Document 的操作?若是,仔細檢驗你的做法,你的做法不對是會 導致把拼音過程的 glyph 當成輸入。實際上在 text input 處直接做拼字的 輸入法在拼字過程的 glyph,比如 bopomofo,是會進 Document 的,透過 document listener 或客制 Document 來做 filtering 或 validation,稍 不小心就會搞砸。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.173.234.56 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1401704303.A.769.html ※ 編輯: sbrhsieh (218.173.234.56), 06/02/2014 18:19:18
文章代碼(AID): #1JZ4zlTf (java)
討論串 (同標題文章)
文章代碼(AID): #1JZ4zlTf (java)