V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
madNeal
V2EX  ›  程序员

问个 javaFX textfield 事件的问题

  •  
  •   madNeal ·
    neal1991 · 2017-11-03 18:42:31 +08:00 · 3519 次点击
    这是一个创建于 2365 天前的主题,其中的信息可能已经有所发展或是发生改变。

    javaFx 里面遇到一个特别坑爹的问题,onInputMethodTextChanged 只能在全角状态下才能触发,但是一旦切换到半角状态就没办法触发了,另外 onKeyTyped 事件只能在半角状态下触发,切换到全角状态就不能触发了。 javaFX 的资料太少了,官方的资料说的也不是很清楚

                                  <TextField fx:id="searchText" layoutX="159.0" layoutY="47.0" onInputMethodTextChanged="#getSearchTextChanged" onKeyTyped="#getKeyTyped" prefHeight="30.0" prefWidth="271.0" />
    
    6 条回复    2017-11-05 00:21:00 +08:00
    yidinghe
        1
    yidinghe  
       2017-11-04 00:55:45 +08:00
    因为半角本来就不在输入法状态下啊。半角输入不会被输入法拦截而是直接发送给控件,全角输入会处于一个被输入法拦截的状态,所以会触发 onInputMethodTextChanged。onKeyTyped 其实不应该用在文本框上,它是用来探测快捷键的。总之不知道楼主想实现什么,这两个事件基本上平常都用不到。
    madNeal
        2
    madNeal  
    OP
       2017-11-04 08:09:14 +08:00
    @yidinghe 这些事件应该很常用,我想去做一个搜索,做到一个实时搜索,而且最坑的是 onInputMethodTextChanged 虽然在全角状态下可以触发,但是却不能显示出来,这貌似也是 javaFX 的一个 BUG。
    HuHui
        3
    HuHui  
       2017-11-04 10:17:31 +08:00
    文档确实太少了
    madNeal
        4
    madNeal  
    OP
       2017-11-04 11:24:56 +08:00 via Android
    都什么年代了,还有这么坑爹的 bug
    yidinghe
        5
    yidinghe  
       2017-11-05 00:01:27 +08:00 via Android
    @madNeal 你用错事件了,应该侦听文本内容变更 textfield.textproperty().addListener(...)
    yidinghe
        6
    yidinghe  
       2017-11-05 00:21:00 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4049 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 05:23 · PVG 13:23 · LAX 22:23 · JFK 01:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.