我想要做的是按下键盘的那一刻,无论写在文本框上的什么都会显示在System.out.printLn()中。但是对于我制作的每种类型,只有在按下另一个键时才会显示。KeyListener - 为什么keyPressed方法延迟一种类型?
例如..我按'A'...然后会显示一个空白区域。 我按'B'...然后会显示'A'。 我按'C'...然后'AB'将会显示。
我想要的是如果我按'A'...然后'A'将显示...等 这有可能吗?我也试过这个上的keyTyped(),但结果是一样的..
这是我这么短的代码...
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class NewClass extends JFrame implements KeyListener{
JTextField tf = new JTextField();
NewClass(){
this.setLayout(null);
tf.setBounds(50, 50, 200, 30);
add(tf);
tf.addKeyListener(this);
}
public static void main(String[] args) {
NewClass r = new NewClass();
r.setVisible(true);
r.setSize(300, 200);
r.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println(tf.getText());
}
@Override
public void keyReleased(KeyEvent e) {
}
}
有什么建议?在此先感谢:)
如果您试图过滤进入该字段的文本,请使用'DocumentFilter'而不是 – MadProgrammer
@MadProgrammer yes。我将在后面实际使用它作为搜索框。我会尝试该文件过滤器。谢谢 – Katherine