我想要做的是按下鍵盤的那一刻,無論寫在文本框上的什麼都會顯示在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