如何在Java Swing中触发keyReleased事件 [英] How to trigger keyReleased event in java swing
本文介绍了如何在Java Swing中触发keyReleased事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试触发Java swing中的键释放事件.
i am trying to trigger key released event in java swing.
txtEmailId.addKeyListener(new KeyAdapter() {
// override keyReleased listener on the Email TextField
@Override
public void keyReleased(KeyEvent e) {
System.out.println("ok");
}
});
以上代码现在已成功运行,我想在txtEmailId.setText("hello");
之后手动调用此keyReleased事件,这是怎么可能的?
above code running successfully now i want to call this keyReleased event after txtEmailId.setText("hello");
manually how it is possible?
推荐答案
而不是KeyAdapter
,请使用 DocumentListener
.请尝试下一个示例:
Instead of KeyAdapter
use DocumentListener
. Try next example:
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.BadLocationException;
public class TestFrame extends JFrame{
public TestFrame(){
init();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
private void init() {
JTextField f = new JTextField();
f.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void removeUpdate(DocumentEvent e) {
validate(e);
}
@Override
public void insertUpdate(DocumentEvent e) {
validate(e);
}
@Override
public void changedUpdate(DocumentEvent e) {
validate(e);
}
private void validate(DocumentEvent e) {
try {
String text = e.getDocument().getText(0, e.getDocument().getLength());
if(text.equals("hello")){
System.out.println("ok");
}
} catch (BadLocationException e1) {
e1.printStackTrace();
}
}
});
f.setText("hello");
add(f);
}
public static void main(String... s){
new TestFrame();
}
}
这篇关于如何在Java Swing中触发keyReleased事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文