我的for循环没有更新,我得到用户每次输入的相同字母的输出“mmmmmm”或“ffffff”。我希望它每次都能不断更新下一个字母:
用户输入:m
用户输入:f
用户输入:d
输出:“使用的字母:mfd”
int j = 0;
String []used = new String[6];
for(j = 0; j<6; j++){
used[j] = tf.getText(); //get user input
}
jl2.setText("Letters Used: " + used[0] + used[1] + used[2] + used[3] + used[4] + used[5] );
答案 0 :(得分:5)
你不应该为此使用for循环。 JTextField
已使用DocumentListener
tf.getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent e) { // text was changed
jl2.setText("Letters Used: " + tf.getText());
}
public void removeUpdate(DocumentEvent e) {} // text was deleted
public void insertUpdate(DocumentEvent e) {} // text was inserted
});
<强> 更新 强>
如果您只想回复Enter
,请使用ActionListener
which is called on Enter
presses:
jl2.setText("Letters Used: ");
tf.addActionListener(new ActionListener(){
@Override public void actionPerformed(ActionEvent e){
jl2.setText(jl2.getText() + tf.getText());
}
});
注意: 实际上,ActionEvent
是由系统的外观“接受”操作触发的。在大多数情况下,这是输入键。