gpt4 book ai didi

java - 如何在java swing中触发keyReleased事件

转载 作者:行者123 更新时间:2023-11-30 03:57:30 27 4
gpt4 key购买 nike

我正在尝试触发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 事件,这怎么可能?

最佳答案

使用DocumentListener代替KeyAdapter 。尝试下一个示例:

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 - 如何在java swing中触发keyReleased事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22803604/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com