Wie präsentiere ich eine einfache Warnmeldung in Java?

128

Ich komme aus .NET und rufe Alert () in Desktop-Apps auf. In dieser Java-Desktop-App möchte ich jedoch nur eine Meldung mit dem Titel "Danke, dass Sie Java verwenden" senden. Ich muss so viel Leid durchmachen:

(mit einem JOptionPane)

Gibt es einen einfacheren Weg?

Haoest
quelle
10
Was genau erwarten Sie von "einfacher"? Wenn es die Ausführlichkeit ist, warum nicht einfach in eine statische Dienstprogrammmethode einwickeln und sie zum Beispiel verstecken? Das offizielle Tutorial ist übrigens hier .
BalusC
5
Wenn Sie die Dokumentation anstelle von 12 Jahre alten Tutorials lesen und sich sofort beschweren, werden Sie feststellen, dass [eine Überlastung mit nur zwei Parametern vorliegt : docs.oracle.com/javase/7/docs/api/javax/swing/… , java.lang.Object). (Die erste davon kann null sein.)
Millimoose

Antworten:

240

Ich werde der Erste sein, der zugibt, dass Java sehr ausführlich sein kann, aber ich halte das nicht für unangemessen:

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

Wenn Sie statisch importieren javax.swing.JOptionPane.showMessageDialogmit:

import static javax.swing.JOptionPane.showMessageDialog;

Dies reduziert sich weiter auf

showMessageDialog(null, "This is even shorter");
Dónal
quelle
34
An Ausführlichkeit ist nichts auszusetzen. In der Tat halte ich das für eine seiner Stärken.
mre
14
@mre Ich denke, das ist entweder ein Witz oder du missverstehst "Ausführlichkeit"?
Dónal
36
@mre Wenn Sie nicht die Schreibpraxis benötigen, um zu einem Sekretariatsjob zu wechseln, sehe ich nicht, wie ausführlich Ausführlichkeit ist.
Dónal
5
@ Dónal Wenn eine einfache Sache eine ganze Seite Code benötigt, um zu arbeiten, schafft das wirklich eine Menge zusätzlicher Jobs für die Leute! :)
Evgeni Sergeev
5
@Alids um die zweite Version zu verwenden, müssen Sie Folgendes zu Ihren Importen hinzufügenimport static javax.swing.JOptionPane.showMessageDialog
Dónal
38

Angenommen, Sie haben bereits einen JFrame, von dem aus Sie dies aufrufen können:

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

Siehe Die Java-Tutorials: So erstellen Sie Dialoge
Siehe JavaDoc

Bill die Eidechse
quelle
4
Das erste Argument kann sein, nullwenn Sie keine zur JFrameVerfügung haben.
Drew Noakes
5
Anmerkung (um wen es sich handelt): JOptionPaneist injavax.swing
Evgeni Sergeev
31

Wenn Sie "Ausführlichkeit" nicht mögen, können Sie Ihren Code jederzeit in eine kurze Methode einschließen:

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

und die Verwendung:

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

Auch ohne Swing zu importieren, können Sie den Anruf in einer langen Zeichenfolge erhalten. Andernfalls verwenden Sie einfach den Swing-Import und den einfachen Aufruf:

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

Leicht genug.

OnResolve
quelle
6

Rufen Sie die Methode "setWarningMsg ()" auf und übergeben Sie den Text, den Sie anzeigen möchten.

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

Oder einfach benutzen

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

Sie können JOptionPane verwenden. (WARNING_MESSAGE oder INFORMATION_MESSAGE oder ERROR_MESSAGE)

Mahfuz Ahmed
quelle