最进学习swing,碰到这样的一个问题。比如我有一JTextArea 我可以用键盘向里面输入东西,比如abcd啦,bcde啦什么的。我想实现这样的一个功能:只用数字键输入字母,就像手机上的键盘那种功能一样。比如我摁数字2,按一下是a两下是c三下是b,按到第四下又回到a。这个想法能不能实现啊?请高手帮帮忙咯,小弟先谢谢大家了。

解决方案 »

  1.   

    按数字键时,记录时间t1,并且判断JTextArea是否选中单个字母。
    1。无选中字母,则在JTextArea的光标位置增加该数字键对应的第一个字母(例如1-〉a)
    并且设置该字母a为选中状态。
    2。选中了字母。
    a。选中的字母在该数字键对应的字母范围内(例如a、b、c对应1),将JTextArea选中的字母替换为下一个字母,并且设置为选中状态(例如b-〉c)
    b。选中的字母不在该数字键对应的字母范围内(例如d和1),将JTextArea选中的字母替换为数字键的第一个字母(例如d-〉a)当无操作时间超过2s(这个自己定),或者有特定操作时(例如上下左右回车等),光标移动到选中字母的后边。取消选中状态。看了lz的需求觉得有趣,临时想的,有疏漏在所难免,只是提点愚见。