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?


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

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


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!");

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.


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)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.