看板 java 關於我們 聯絡資訊
※ 引述《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 了..... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.136.16.208 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1401730710.A.939.html
Expsun:FX讚 06/03 05:13
Killercat:歡迎加入JavaFX XD 06/03 09:54
kahiro:印象中之前碰到的swing中文問題.如果是事先切成中文 06/17 23:05
kahiro:再開程式就能順利輸入... 06/17 23:07