我有一个有趣的问题。
我在 JScrollPane 中有一个 JTextPane ,其中填充了样式文本。文本从外部设备生成,然后传递给 StyledDocument(它看起来像一个终端窗口)。我使用按键监听器将输入的每个字符发送到设备,然后将字符从外部设备打印到文档中。这工作得很好!我不能更快乐!
除了!
当我按回车键或退格键时,会播放 Windows“boink”错误声音。当我按下回车键或退格键时,如何覆盖 JTextPane 以不播放“boink”声音?
谢谢!
关键监听器的当前代码
addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent ke) {
//Absorb this action.
}
@Override
public void keyReleased(KeyEvent ke) {
//Absorb this action.
}
@Override
public void keyPressed(KeyEvent evt) {
char c = evt.getKeyChar();
if (((byte) c) == 0x0A) {
c = ((char) 0x0D);
}
try {
rumIO.write(c);
} catch (Exception e) {
}
}
});
修复它的代码!
addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent evt) {
InputMap inputMap = getInputMap();
ActionMap actionMap = getActionMap();
KeyStroke keyStroke = KeyStroke.getKeyStrokeForEvent(evt);
inputMap.put(keyStroke, "doNothing");
actionMap.put("doNothing", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent ae) {
//Do Nothing
}
});
char c = evt.getKeyChar();
if (((byte) c) == 0x0A) {
c = ((char) 0x0D);
}
try {
rumIO.write(c);
} catch (Exception e) {
}
}
});