java如何在JTree上禁用默认密钥行为?
我正在尝试制作一个JTree,它在键入字母、数字、字母等字符时具有特定的行为,以应用过滤器、装饰器等
一切似乎都很正常,但当我输入字母时,选择似乎会自动改变,并且与过滤器的行为方式不同。看起来这种行为是在BasicTreeUI.Handler.keyTyped(KeyEvent e)
中定义的,我不知道如何以独立的方式避免或覆盖这种行为
有什么建议吗
你可以在下面搜索框中键入要查询的问题!
我正在尝试制作一个JTree,它在键入字母、数字、字母等字符时具有特定的行为,以应用过滤器、装饰器等
一切似乎都很正常,但当我输入字母时,选择似乎会自动改变,并且与过滤器的行为方式不同。看起来这种行为是在BasicTreeUI.Handler.keyTyped(KeyEvent e)
中定义的,我不知道如何以独立的方式避免或覆盖这种行为
有什么建议吗
# 1 楼答案
这对我很有用:
# 2 楼答案
为了以独立于外观的方式重写
BasicTreeUI.Handler.keyTyped(KeyEvent e)
的JTree
行为,请尝试以下代码显然,UI是通过在构建过程中将KeyListener安装到JTree中来完成工作的,所以在构建JTree之后,在添加自己的特定行为之前,只需删除已经安装的KeyListener即可
# 3 楼答案
有Key Bindings出现在
JTree
上,它会对按键做出反应。下面的代码片段打印出其中一个输入映射中的可用绑定因此,如果您循环所有
InputMap
实例并对所有实例调用clear
,那么JTree
应该不再对这些按键做出反应