Java:完全禁用任何 Swing 不需要的蜂鸣声的方法?

标签 java swing beep

我正在使用 Swing 开发一个相当复杂的 Java 应用程序。

在某些情况下,无需任何用户干预就会发出不需要的蜂鸣声。没有崩溃,应用程序继续正常工作,我遵守 EDT 规则等。

但在某些情况下可以听到哔哔声:我可能正在做一些愚蠢的事情来触发哔哔声,但无论如何这都不是用户操作,因为当用户不在时,它可能会在导入数据时发生。

对于永远不应该发出任何声音的 Java 应用程序来说,是否有可能对其进行配置,比如为整个应用程序设置一个属性:“永远不要发出哔哔声”?

我一直在谷歌搜索这个问题,我发现有同样问题但没有答案的人的消息:我发现的只是一些 hack 说 JEditorPane 有一个已知问题并且使用 putProperty("IgnoreCharsetDirective", Boolean.TRUE) 有助于减少不必要的蜂鸣声。然而,关于这个主题的信息非常稀少。

这是一个真正的问题,因为应用程序是在需要计算机声音的环境中使用的,但是这个 Java 应用程序发出噪音是 Not Acceptable 。

最佳答案

Java 论坛上讨论了您的问题:

// Write a custom toolkit
public class MyToolkit extends sun.awt.windows.WToolkit 
{
  public void beep() {
  }
}

// Set this property
System.setProperty("awt.toolkit", "MyPackage.MyToolkit");

注意: 不鼓励使用此解决方法。您仍然应该尝试找到问题的根源。


编辑:删除了一个链接,因为 Java 论坛上的帖子现在处于离线状态。

关于Java:完全禁用任何 Swing 不需要的蜂鸣声的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2266549/

相关文章:

c++ - 通过c/c++程序在linux中生成系统声音

wpf - 我应该用什么来替换 WinAPI Beep() 函数?

c++ - Boost Asio async_send 产生蜂鸣声

java - Arquillian和Flyway使用不同版本的H2内存

java - Java 中迭代器变量前面的括号是什么?

java - Web.xml 错误页面未捕获未经检查的异常

java - 是否可以在 Window Builder for Eclipse 中定义您自己的 'controller'?

带有文本和按钮的 Java 对话框

java - 使用camel-bindy或beanio解析键值文本文件

java - 带保存日志的 ServerGUI - JAVA