java - 如何删除焦点转移到不可编辑的 JTextComponent 时播放的声音

标签 java jtextfield jtextpane toolkit

当我将焦点放在不可编辑的 JTextField 或 JTextPane 上时,如何消除声音?

每当我将焦点转移到不可编辑的 JTextPane 并按 Enter 键时,就会播放相当于 Toolkit 类的“嘟嘟声”的声音:

Toolkit.getDefaultToolkit.beet();

怎样才能让它不播放声音?

最佳答案

你也许可以尝试这个想法 question ,引用:

这个想法是获取文本字段的蜂鸣 Action 并禁用它。

JTextField field = new JTextField();
Action action;
action = field.getActionMap().get(DefaultEditorKit.beepAction);
action.setEnabled(false);

如果这不起作用,您可以尝试添加一个 KeyListener,它将消耗导致蜂鸣声的 KeyEvent

JTextField textField = new JTextField();
textField.addKeyListener(new KeyAdapter() {
  @Override
  public void keyTyped(KeyEvent e) {
    if(e.getKeyCode() == KeyEvent.VK_ENTER){
      // will consume the event and stop it from processing normally
      e.consume();
    }        
  }
});

关于java - 如何删除焦点转移到不可编辑的 JTextComponent 时播放的声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26223439/

相关文章:

java - 类型不匹配 : cannot convert MyClass<E> to MyClass<E>

java - lambda foreach parallelStream 创建的数据少于预期

java - 如何在 JPanel 中创建矩形 block ?

java - 如何将 JTextField 打印到 JTable 中?

java - 双击 JList 元素后试图将焦点放在 JTextPane 上 (Java)

java - 如何定义一个变量以便它可以在java中的while循环之外使用?

java - 在跳过要求使用 Scanner 输入字符串的行之前出现 StringIndexOutOfBoundsException

java - 如何增加 JTextField 中的值

java - JTextPane 是 JScrollPane 可接受的客户端吗?

java - 如何实现在 JTextPane 中将 URL 作为超链接插入的 DocumentFilter?