4

Swing を使用してかなり複雑な Java アプリケーションに取り組んでいます。

ユーザーの介入なしに不要なビープ音が鳴る場合があります。クラッシュはありません。アプリケーションは正常に動作し続けます。EDT ルールなどを尊重しています。

それでも、ビープ音が聞こえる場合があります。そのビープ音をトリガーする愚かなことをしている可能性がありますが、いずれにせよ、ユーザーが離れているときにデータをインポートするときに発生する可能性があるため、ユーザー アクションではありません。

アプリケーション全体に「ビープ音を出さないでください」というプロパティを設定するなどして、決して音を出してはならないJavaアプリケーションを構成することは可能ですか?

私はその問題をグーグルで調べていましたが、同じ問題を抱えているが答えがない人々からのメッセージを見つけました.JEditorPaneには既知の問題があり、putProperty("IgnoreCharsetDirective", Boolean.TRUE)不要なビープ音の発生頻度を減らすには. . しかし、この件に関する情報は非常に乏しい。

コンピューター上でサウンドが必要な環境でアプリケーションが使用されるため、これは現実的な問題ですが、ノイズを放出するこの Java アプリケーションは受け入れられません。

4

2 に答える 2

4

あなたの問題は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");

NOTE:この回避策の使用はお勧めしません。それでも、問題の根本を突き止めようとする必要があります。


編集: Javaフォーラムのスレッドがオフラインになったため、リンクを削除しました。

于 2010-02-15T15:02:04.667 に答える
0

LookAndFeelSwing では、次のようにオーバーライドする必要があります。

UIManager.setLookAndFeel(new NimbusLookAndFeel() {

  @Override
  public void provideErrorFeedback(Component component) {

    // Your beep decision goes here

    // You want error feedback 
    super.provideErrorFeedback(component);

  }
});

通常、ビープ音の決定は、アプリケーションの何らかの外部構成/設定フラグを参照します。

于 2015-06-12T09:28:34.627 に答える