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 –