gpt4 book ai didi

java - 每次 JPasswordField 中的文本更改时调用一个方法

转载 作者:行者123 更新时间:2023-12-02 07:58:05 26 4
gpt4 key购买 nike

--编辑--
我有一个 JTextField,我希望每次有人更改(键入或删除)JTextField 中的字符时调用一个方法(现在只是打印语句)。其背后的目的是让该方法立即检查键入的内容是否满足某些条件。感谢您的帮助,我成功地写了:

public class MyDocumentListener implements DocumentListener {

public void insertUpdate(DocumentEvent e) {
updateLog(e, "inserted into");
}
public void removeUpdate(DocumentEvent e) {
updateLog(e, "removed from");
}
public void changedUpdate(DocumentEvent e) {
//Plain text components do not fire these events
}

public void updateLog(DocumentEvent e, String action) {
System.out.println("should call the method here");
}
}

JTextField 代码:

    JTextField passwordField = new JTextField();
passwordField.getDocument().addDocumentListener(new MyDocumentListener());
passwordField.getDocument().putProperty("name", "Text Field");

我现在遇到的问题是我需要使用

String textFieldPassword = passwordField.getText();

但它返回NullPointerException。我假设这是因为我添加了 DocumentListener 并且现在应该在 DocumentEvent 上操作。但我真的不知道该怎么做。

最佳答案

您想要该字段的操作监听器:

public class YourClass extends JPanel implements ActionListener {

public void addComponents() {
...
passwordField.addActionListener(this);
...
}

/**
will be fired when the password field changes
*/
public void actionPerformed(ActionEvent evt) {
String text = passwordField.getText();
System.out.println("key pressed");
}
}

如果这不符合您的口味,那么您可以尝试 DocumentListener .

关于java - 每次 JPasswordField 中的文本更改时调用一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9354376/

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