Comment présenter un simple message d'alerte en java?

128

Venant de .NET, je suis tellement habitué à appeler Alert () dans les applications de bureau. Cependant, dans cette application de bureau java, je veux juste alerter un message disant "merci d'utiliser java", je dois traverser autant de souffrances:

(en utilisant un JOptionPane)

Y a-t-il un moyen plus simple?

Haoest
la source
10
Qu'attendez-vous exactement de «plus facile»? Si c'est la verbosité, pourquoi ne pas simplement l'envelopper dans une méthode utilitaire statique et la cacher, par exemple? Au fait, le tutoriel officiel est ici .
BalusC
5
Si vous lisez la documentation au lieu de tutoriels vieux de 12 ans suivis de plaintes immédiates, vous découvrirez qu'il y a [une surcharge avec seulement deux paramètres: docs.oracle.com/javase/7/docs/api/javax/swing/… , java.lang.Object). (Le premier peut être nul.)
millimoose

Réponses:

240

Je serai le premier à admettre que Java peut être très verbeux, mais je ne pense pas que ce soit déraisonnable:

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

Si vous importez de manière statique en javax.swing.JOptionPane.showMessageDialogutilisant:

import static javax.swing.JOptionPane.showMessageDialog;

Cela se réduit encore à

showMessageDialog(null, "This is even shorter");
Dónal
la source
34
Rien de mal à la verbosité. En fait, je considère que c'est l'une de ses forces.
mre
14
@mre je suppose que c'est soit une blague, soit vous ne comprenez pas bien la "verbosité"?
Dónal
36
@mre à moins que vous n'ayez besoin de la pratique de la dactylographie pour passer à un travail de secrétariat, je ne vois pas à quel point la verbosité est souhaitable.
Dónal
5
@ Dónal Quand une chose simple prend une page entière de code pour fonctionner, cela crée vraiment beaucoup d'emplois supplémentaires pour les gens! :)
Evgeni Sergeev
5
@Alids pour utiliser la deuxième version, vous devez ajouter ce qui suit à vos importationsimport static javax.swing.JOptionPane.showMessageDialog
Dónal
38

En supposant que vous ayez déjà un JFrame pour appeler cela:

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

Voir les didacticiels Java: Comment créer des boîtes de dialogue
Voir le JavaDoc

Bill le lézard
la source
4
Le premier argument peut être nullsi vous n'avez pas de JFramefichier.
Drew Noakes
5
Remarque (à qui cela peut concerner): JOptionPaneest enjavax.swing
Evgeni Sergeev
31

Si vous n'aimez pas la "verbosité", vous pouvez toujours envelopper votre code dans une méthode courte:

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

et l'utilisation:

msgbox("don't touch that!");
Joe Coton
la source
24

Même sans importer de swing, vous pouvez recevoir l'appel en une seule chaîne, qu'elle soit longue. Sinon, utilisez simplement l'importation swing et un simple appel:

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

Assez facile.

OnResolve
la source
6

Appelez la méthode "setWarningMsg ()" et transmettez le texte que vous souhaitez afficher.

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);
}

Ou utilisez simplement

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

Vous pouvez utiliser JOptionPane. (WARNING_MESSAGE ou INFORMATION_MESSAGE ou ERROR_MESSAGE)

Mahfuz Ahmed
la source