Java 当jtexfield发生变化时,如何为其添加侦听器?
我有一个Java 当jtexfield发生变化时,如何为其添加侦听器?,java,swing,jtextfield,Java,Swing,Jtextfield,我有一个JTextField。我想在函数中的文本更改时调用函数 如何做到这一点?您可以将KeyListener或ActionListener添加到字段并捕获事件。Java swing中跟踪JTextField文本内容更改的适当侦听器是DocumentListener,您必须将其添加到JTextField的文档中: myTextField.getDocument().addDocumentListener(new DocumentListener() { // implement the
JTextField。
我想在函数中的文本更改时调用函数
如何做到这一点?您可以将KeyListener或ActionListener添加到字段并捕获事件。Java swing中跟踪JTextField文本内容更改的适当侦听器是DocumentListener,您必须将其添加到JTextField的文档中:
myTextField.getDocument().addDocumentListener(new DocumentListener() {
// implement the methods
});
你可以用
以这种方式使用密钥侦听器
JTextField tf=new JTextField();
tf.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent ke)
{
if(!(ke.getKeyChar()==27||ke.getKeyChar()==65535))//this section will execute only when user is editing the JTextField
{
System.out.println("User is editing something in TextField");
}
}
});
您是否尝试过
setActionListener()
?不,caretListener与数据的更改无关…当您只想检测更改时,这有点奇怪,但我承认这是唯一可行的解决方案。字段中的值可能会更改,而用户不必直接在字段中输入值,例如,根据选择的单选按钮设置字段中的值。
JTextField tf=new JTextField();
tf.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent ke)
{
if(!(ke.getKeyChar()==27||ke.getKeyChar()==65535))//this section will execute only when user is editing the JTextField
{
System.out.println("User is editing something in TextField");
}
}
});