0
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyListener;
public class Test implements KeyListener
我有一個JTextField:爲什麼當使用這些代碼塊不激活這些if語句
private static JTextField tf = new JTextField();
在main方法我有:
tf.addKeyListener(new Test());
然後,我有抽象方法KeyTyped,KeyPressed,KeyReleased,但問題在於if語句中的代碼:if(e.getKeyCode()== KeyEvent.VK_ENTER)未激活。
@Override
public void keyTyped(java.awt.event.KeyEvent e){
if(e.getKeyCode() == KeyEvent.VK_ENTER){
System.out.println("This is working");
}
}
如果我參加了這一點:
if(e.getKeyCode() == KeyEvent.VK_ENTER)
而離開的System.out.println();它會激活,但我不想爲幾個條件編寫代碼,所以我可以爲不同的鍵創建特定的功能。
import javax.swing.*;
import java.awt.event.KeyListener;
/**
* Created by Kyle on 7/15/2017.
*/
public class KeyEvent implements KeyListener {
@Override
public void keyTyped(java.awt.event.KeyEvent e) {
if(e.getKeyCode() == java.awt.event.KeyEvent.VK_ENTER){
System.out.println("Test");
}
}
@Override
public void keyPressed(java.awt.event.KeyEvent e) {
}
@Override
public void keyReleased(java.awt.event.KeyEvent e) {
}
public static void main(String[] args){
JFrame f = new JFrame();
f.setSize(500, 600);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.addKeyListener(new KeyEvent());
f.setVisible(true);
}
}
這只是說傳遞給該方法的KeyEvent不是'KeyEvent.VK_ENTER' ... – alfasin
也許你......沒有按下回車鍵?發佈一個完整的重現問題的最小示例,並準確告訴我們您正在做什麼來測試它。 –
這可能是你的答案:https://stackoverflow.com/questions/4419667/detect-enter-press-in-jtextfield –