我刚刚从BASIC过渡到JAVA,所以请原谅我在编码中遇到的任何约定问题。
我有一个温和的影响GUI相关的问题。我已经构建了一个矩阵乘法计算器,它对输入的字母进行计算(使用MOD 26)。我在Eclipse上专门运行该程序,并在下面包含了实际程序的操作图片...
问题出在接受输入字母的Jtextfield框上:
Actual program running on Eclipse
基本上,我希望能够在一个框中输入一个字母,然后将光标移动到下一个框(在输入所有字母后循环回到第一个框)。我使用了“KeyListener”,如第一个JTextField“letter box”的代码所示:
A_RUCE = new JTextField(2);
A_RUCE.setFont(new Font("Serif", Font.PLAIN, 18));
A_RUCE.setEditable(true);
cp.add(A_RUCE);
A_RUCE.setText("");
A_RUCE.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
String value=A_RUCE.getText();
if(value.length()==0){
B_RUCE.requestFocus();
}
}
});
问题是,当我运行程序时,大多数时候,这个东西变得“过于敏感”。我试图输入一个字母,光标跳过一个框。我考虑了电脑上的按键重复率等,并调整了设置,但这没有帮助。
所有我正在寻找的是当一个字母被输入,光标移动到下一个框没有'跳过'一个框。我不知道为什么会发生这种情况,我不能想出一个替代的方法来解决这个问题。我会非常感激,如果有人能帮助这个。谢谢你亲切。
1条答案
按热度按时间ozxc1zmp1#
我更倾向于使用
DocumentListener
,你可以检查文本的长度,然后转到下一个字段,这是你可以做的事情: