2010-12-21 16 views
6

Jedes Mal, wenn ich eine JOptionPane in meiner Swing-Anwendung zeigen Feuer, das ich einen Signalton, bevor es wie folgt aus:Java Swing - Wie ertönt ein Piepton vor einem JOptionPane?

Toolkit.getDefaultToolkit().beep(); 
JOptionPane.showMessageDialog(myFrame, "Message", "Title", JOptionPane.INFORMATION_MESSAGE); 

Gibt es eine Möglichkeit, die erste Zeile automatisch auf jede JOptionPane falls ich es in Code zu schreiben vergessen haben, bewerben ?

+0

Sind Sie sicher, dass Sie das wirklich wollen? Beep jedes Mal, wenn ein Popup angezeigt wird? – fish

+1

@fish ... Ja, meine Benutzer sind blind, also möchte ich, dass sie den Beeeeeeeep hören :) – Brad

+0

Neugierig, warum Java nicht "\ a" hat – user489041

Antwort

4

Sie könnten Ihre eigene Klasse erstellen, die eine statische Methode showMessageDialogAndBeep() hat, die JOptionPane.showMessageDialog aufruft und davor piepst.

+0

Ich suchte AlexR Lösung, aber ich konnte es nicht implementieren. Ich werde dann die normale Lösung verwenden. Danke atamanroman. – Brad

2

void showMessageDialog(Component pC, Object m, String t, int mT) { Toolkit.getDefaultToolkit().beep(); JOptionPane.showMessageDialog(pC, m,t,mT); }

0

Ich stimme mit org.life.java und atamanroman. Zusätzlich kann ich Ihnen folgendes vorschlagen. Erstellen Sie AWTListener und registrieren Sie es mit

Ich denke, dass dieser Listener in vielen Fällen einschließlich Dialogöffnung aufgerufen wird. Sie müssen also nur den Fall erkennen und beep() anrufen. Ich habe das nicht versucht, aber ich glaube, es wird funktionieren.

+0

. Ich weiß, dass das vielleicht nicht sicher ist, aber das ist es wonach ich suche. Kannst du mir bitte ein Beispiel geben? ... Ich versuche dies auf JOptionPane.showMessageDialog() oder JOptionPane.showConfirmDialog() anzuwenden – Brad