作者pupuliao (pupu)
看板java
标题Re: [问题] Swing 的中文输入问题 in MAC OS
时间Tue Jun 3 01:38:27 2014
※ 引述《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://webptt.com/cn.aspx?n=bbs/java/M.1401730710.A.939.html
1F:推 Expsun:FX赞 06/03 05:13
2F:→ Killercat:欢迎加入JavaFX XD 06/03 09:54
3F:推 kahiro:印象中之前碰到的swing中文问题.如果是事先切成中文 06/17 23:05
4F:→ kahiro:再开程式就能顺利输入... 06/17 23:07