gpt4 book ai didi

java - JTextPane 和键盘输入

转载 作者:行者123 更新时间:2023-11-30 07:22:32 25 4
gpt4 key购买 nike

我有一个有趣的问题。

我在 JScrollPane 中有一个 JTextPane,它填充有样式文本。文本从外部设备生成,然后传递给 StyledDocument(它看起来像一个终端窗口)。我使用按键监听器将输入的每个字符发送到设备,然后从外部设备将字符打印到文档中。这太棒了!我再高兴不过了!

除了!

当我按回车键或退格键时,会播放 Windows“boink”错误声音。当我在其中按下 enter 或退格键时,如何覆盖 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) {
}
}
});

最佳答案

JTextPane 使用 Key Bindings .您可以覆盖默认行为,如 tutorial 中所示。在这个example .

关于java - JTextPane 和键盘输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12648456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com