2010-12-21 60 views
6

Siempre muestro un JOptionPane en mi aplicación Swing i disparar un tono antes de esta manera:Java Swing - ¿Cómo hacer un sonido antes de cualquier JOptionPane?

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

¿Hay una manera de aplicar la primera línea de forma automática a cualquier JOptionPane en caso de que me olvidé de escribir en código ?

+0

¿Estás seguro de que realmente quieres hacer eso? ¿Sonar cada vez que se muestra una ventana emergente? – fish

+1

@fish ... Sí, mis usuarios son ciegos, por lo que quiero que escuchen el beeeeeeeep :) – Brad

+0

Curioso por qué java no tiene "\ a" – user489041

Respuesta

4

Puede crear su propia clase que tiene un método estático showMessageDialogAndBeep() que llama a JOptionPane.showMessageDialog y emite un pitido antes.

+0

Estaba buscando la solución de AlexR, pero no pude implementarla. Voy a usar la solución normal entonces. Gracias atamanroman. – Brad

2

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

0

Estoy de acuerdo con org.life.java y atamanroman. Además, puedo sugerirle lo siguiente. Crear AWTListener y registrarlo usando

Toolkit.getDefaultToolkit().addAWTEventListener(listener, eventMask) 

Creo que este oyente será llamado en muchos casos, incluyendo la apertura de diálogo. Entonces solo tiene que reconocer el caso y llamar al beep(). No intenté esto, pero creo que funcionará.

+0

. Sé que esto puede no ser seguro, pero eso es lo que estoy buscando. ¿Puedes darme un ejemplo? ... Estoy intentando aplicar esto en JOptionPane.showMessageDialog() o JOptionPane.showConfirmDialog() – Brad

Cuestiones relacionadas