¿Cómo presentar un mensaje de alerta simple en Java?

128

Viniendo de .NET, estoy tan acostumbrado a llamar a Alert () en aplicaciones de escritorio. Sin embargo, en esta aplicación de escritorio de Java, solo quiero alertar un mensaje que dice "gracias por usar Java". Tengo que pasar por este sufrimiento:

(usando un JOptionPane)

hay una manera mas facil?

Haoest
fuente
10
¿Qué esperas exactamente de "más fácil"? Si es la verbosidad, ¿por qué no simplemente envolverlo en algún método de utilidad estática y ocultarlo, por ejemplo? Por cierto, el tutorial oficial está aquí .
BalusC
55
Si lee la documentación en lugar de los tutoriales de 12 años seguidos de una queja inmediata, descubrirá que hay [una sobrecarga con solo dos parámetros: docs.oracle.com/javase/7/docs/api/javax/swing/… , java.lang.Object). (El primero de los cuales puede ser nulo.)
millimoose

Respuestas:

240

Seré el primero en admitir que Java puede ser muy detallado, pero no creo que esto no sea razonable:

JOptionPane.showMessageDialog(null, "My Goodness, this is so concise");

Si importa estáticamente javax.swing.JOptionPane.showMessageDialogusando:

import static javax.swing.JOptionPane.showMessageDialog;

Esto se reduce aún más a

showMessageDialog(null, "This is even shorter");
Dónal
fuente
34
No hay nada malo con la verbosidad. De hecho, considero que uno de sus puntos fuertes.
mre
14
@mre ¿Supongo que esto es una broma o no estás entendiendo "verbosidad"?
Dónal
36
@mre a menos que necesite la práctica de mecanografía para la transición a un trabajo de secretaria, no veo cómo es deseable la verbosidad.
Dónal
55
@ Dónal Cuando algo simple toma una página entera de código para funcionar, ¡eso realmente crea muchos trabajos adicionales para las personas! :)
Evgeni Sergeev
55
@Alids para usar la segunda versión, debe agregar lo siguiente a sus importacionesimport static javax.swing.JOptionPane.showMessageDialog
Dónal
38

Suponiendo que ya tiene un JFrame para llamar a esto desde:

JOptionPane.showMessageDialog(frame, "thank you for using java");

Vea los Tutoriales de Java: Cómo hacer cuadros de diálogo
Vea el JavaDoc

Bill el lagarto
fuente
44
El primer argumento puede ser nullsi no tiene un JFramedisponible.
Drew Noakes
55
Nota (a quien corresponda): JOptionPaneestá enjavax.swing
Evgeni Sergeev
31

Si no le gusta la "verbosidad", siempre puede ajustar su código en un método breve:

private void msgbox(String s){
   JOptionPane.showMessageDialog(null, s);
}

y el uso:

msgbox("don't touch that!");
Joe Cotton
fuente
24

Incluso sin importar swing, puede recibir la llamada en una, ya sea larga, cadena. De lo contrario, solo use la importación de swing y la llamada simple:

JOptionPane.showMessageDialog(null, "Thank you for using Java", "Yay, java", JOptionPane.PLAIN_MESSAGE);

Suficientemente fácil.

OnResolve
fuente
6

Llame al método "setWarningMsg ()" y pase el texto que desea mostrar.

exm:- setWarningMsg("thank you for using java");


public static void setWarningMsg(String text){
    Toolkit.getDefaultToolkit().beep();
    JOptionPane optionPane = new JOptionPane(text,JOptionPane.WARNING_MESSAGE);
    JDialog dialog = optionPane.createDialog("Warning!");
    dialog.setAlwaysOnTop(true);
    dialog.setVisible(true);
}

O simplemente use

JOptionPane optionPane = new JOptionPane("thank you for using java",JOptionPane.WARNING_MESSAGE);
JDialog dialog = optionPane.createDialog("Warning!");
dialog.setAlwaysOnTop(true); // to show top of all other application
dialog.setVisible(true); // to visible the dialog

Puedes usar JOptionPane. (WARNING_MESSAGE o INFORMATION_MESSAGE o ERROR_MESSAGE)

Mahfuz Ahmed
fuente