【发布时间】:2011-12-04 21:34:12
【问题描述】:
我有一个游戏,您可以在其中使用字母库中的字母创建单词。每次输入字母时,我都希望字母图标消失,并在删除时重新出现。我已经完成了大部分功能,但是有一些我无法修复的错误。现在我正在使用KeyListener 并根据关键事件过滤输入/采取行动。但是,同时按下多个键时会出现复杂情况。
输入过滤不是我的主要问题,它是在删除字母后将它们放回银行。有没有办法完全删除插入符号,只允许用户从JTextField 的末尾添加输入到 / 退格?此外,任何有关正确处理按钮糖化的提示将不胜感激。谢谢!
注意:如果你曾经玩过 Super Text Twist,那基本上就是我想要的那种猜测方法。
【问题讨论】:
-
你是否执着于你现在的工作方式?我建议在 JTextField 上放置一个侦听器,然后每次更改时,根据可用字母检查其中的所有文本,您的程序将做更多的工作,但它应该仍然能够跟上没有问题。这不会阻止用户输入未包含的字母...
-
通过 setEditable(false) 使 JTextField 不可编辑,然后使用您的 KeyListener(或键绑定)添加或删除字符。
-
@dann.dev 这似乎效率很低,即使程序可以跟上。我宁愿检查每个键级别,也不愿在每次输入更改时重新检查多个字母。
-
@HovercraftFullOfEels 我试试看,谢谢。
-
@dann.dev:idea 可以工作,尤其是使用 DocumentFilter 来检查输入在发布到文本组件之前,有效地防止用户添加或删除错误数据。
标签: java swing jtextfield