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

作者: pupuliao (pupu)   2014-06-03 01:38:27
※ 引述《sbrhsieh (十年一夢)》之銘言:
: ※ 引述《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 上試試其他的輸入法。
感謝 前輩的告知
最後我找人測試 MAC OS 的預設輸入法,確定我原先的寫法事OK的
應該是 YAHOO 輸入法問題
: 2. 你的 Java 程式是單純使用 JTextComponent 類的元件來收集文字 input 嗎?
: 有沒有使用客制的 Document 或是利用 listener 去觀察 Document 的變化並
: 做些會影響 Document 的操作?若是,仔細檢驗你的做法,你的做法不對是會
: 導致把拼音過程的 glyph 當成輸入。實際上在 text input 處直接做拼字的
: 輸入法在拼字過程的 glyph,比如 bopomofo,是會進 Document 的,透過
: document listener 或客制 Document 來做 filtering 或 validation,稍
: 不小心就會搞砸。
這是小弟的程式碼
https://github.com/pupuliao/JNovelDownloader
我只是在當使用者按下 button 後,截取jTextField 的內容
完全照著螞蟻書上做 沒有作您說的那麼多 複雜的操作
下次開發 我似乎要用 javaFX 了.....
作者: Expsun (無限燃燒)   2014-06-03 05:13:00
FX讚
作者: Killercat (殺人貓™)   2014-06-03 09:54:00
歡迎加入JavaFX XD

Links booklink

Contact Us: admin [ a t ] ucptt.com