Ano*_*non 1 java swing for-loop jlabel jtextfield
我的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] );
Run Code Online (Sandbox Code Playgroud)
你不应该为此使用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
});
Run Code Online (Sandbox Code Playgroud)
更新:
如果您只想对Enter印刷机做出响应,可以使用在印刷机上调用的印刷机:ActionListener Enter
jl2.setText("Letters Used: ");
tf.addActionListener(new ActionListener(){
@Override public void actionPerformed(ActionEvent e){
jl2.setText(jl2.getText() + tf.getText());
}
});
Run Code Online (Sandbox Code Playgroud)
注意:实际上,ActionEvent是由系统的外观"接受"动作触发的.在大多数情况下,这是输入键.