所以我一直在尝试提取 jTextFields 中的数据,并且不断弹出此错误消息,引用:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: calcu.turkey (<--my class) cannot be cast to java.awt.event.KeyListener
jTextField2.addKeyListener(new java.awt.event.KeyListener() {
@Override
public void keyTyped(KeyEvent ke) {
//To change body of generated methods, choose Tools | Templates.
}
@Override
public void keyPressed(KeyEvent ke) {
//To change body of generated methods, choose Tools | Templates.
}
@Override
public void keyReleased(KeyEvent ke) {
//To change body of generated methods, choose Tools | Templates.
}
});
jTextField2.addKeyListener((KeyListener) this);
jTextField2.setFont(new java.awt.Font("Times New Roman", 0, 10)); // NOI18N
jTextField2.setText("0");
getContentPane().add(jTextField2);
jTextField2.setBounds(250, 40, 70, 20);
最重要的是这一行:jTextField2.addKeyListener((KeyListener) this);
因为它将 (KeyListener) 视为错误。我想知道如何正确添加 KeyListener 以获取文本字段中的数字。
最佳答案
您没有使用 KeyListener。您很少需要这样做。有更好的 API 可供使用。
例如,在使用文本组件时,您可能会使用 DocumentListener
(请参阅 How to Write a Document Listener )或 DocumentFilter
(请参阅 Implementing a Document Filter )。
I was wondering how do you properly add the KeyListener so it grab the number in the textfield.
通常,您会在一些不相关的事件上获取号码。例如,表单上有一个“提交”按钮。那么在这种情况下,您可以向按钮添加一个 ActionListener,然后在要提交表单时使用文本字段的 getText()
方法。
此外,我上面引用的 Swing 教程中有一个关于如何编写关键监听器
的部分。
关于java - KeyListener 的正确使用方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17097750/