【发布时间】:2012-08-16 04:14:41
【问题描述】:
所以我有一个基本的摇摆应用程序,它包含一个JTextfield,我在其中添加了以下KeyListener:
public class PromptKeyListener implements KeyListener {
private boolean SHIFT_PRESSED;
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
//Do Thing A
} else if (e.getKeyCode() == KeyEvent.VK_SHIFT) {
this.SHIFT_PRESSED = true;
}
if (SHIFT_PRESSED
&& e.getKeyCode() == KeyEvent.VK_BACK_SPACE) {
//Do Thing B
}
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_SHIFT) {
this.SHIFT_PRESSED = false;
}
System.out.println(SHIFT_PRESSED);
}
@Override
public void keyTyped(KeyEvent e) {
}
}
问题是,当我按住 SHIFT 和 Backspace 时,事情 B 确实发生了,但 Backspace 键也像往常一样从文本框中删除了一个字符。
当按住 SHIFT 时,有没有办法防止 Backspace 从文本框中删除字符?
【问题讨论】:
标签: java swing keyboard-shortcuts jtextfield keylistener