Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当jtexfield发生变化时,如何为其添加侦听器?_Java_Swing_Jtextfield - Fatal编程技术网

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");
            }
        }
    });