Jak przedstawić prosty komunikat ostrzegawczy w Javie?

131

Pochodzę z .NET i jestem tak przyzwyczajony do wywoływania Alert () w aplikacjach komputerowych. Jednak w tej aplikacji komputerowej java chcę tylko ostrzec wiadomość mówiącą „dziękuję za używanie java”, muszę przejść przez tyle cierpienia:

(za pomocą JOptionPane)

Czy istnieje prostszy sposób?

Haoest
źródło
10
Czego dokładnie oczekujesz od „łatwiejszego”? Jeśli jest to gadatliwość, dlaczego nie owinąć jej po prostu jakąś statyczną metodą narzędziową i na przykład ukryć? Nawiasem mówiąc, oficjalny samouczek jest tutaj .
BalusC
5
Jeśli przeczytasz dokumentację zamiast 12-letnich samouczków, a następnie natychmiast narzekasz, dowiesz się, że istnieje [przeciążenie z tylko dwoma parametrami: docs.oracle.com/javase/7/docs/api/javax/swing/… , java.lang.Object). (Z których pierwszy może być zerowy).
millimoose

Odpowiedzi:

244

Będę pierwszą, która przyzna, że ​​Java może być bardzo rozwlekła, ale nie sądzę, aby to było nierozsądne:

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

Jeśli importujesz statycznie javax.swing.JOptionPane.showMessageDialogprzy użyciu:

import static javax.swing.JOptionPane.showMessageDialog;

To dalej redukuje się do

showMessageDialog(null, "This is even shorter");
Dónal
źródło
35
Nie ma nic złego w gadatliwości. W rzeczywistości uważam to za jedną z jego mocnych stron.
MRE
15
@mre Myślę, że to albo żart, albo nie rozumiesz „gadatliwości”?
Dónal
37
@mre, chyba że potrzebujesz praktyki pisania, aby przejść do pracy w sekretariacie, nie widzę, jak szczegółowość jest pożądana.
Dónal
7
@ Dónal Kiedy jakaś prosta rzecz wymaga całej strony kodu, aby zacząć działać, tworzy to naprawdę wiele dodatkowych miejsc pracy dla ludzi! :)
Evgeni Sergeev
6
@Alids do korzystania z drugiej wersji, musisz dodać następujące dane do swojego importuimport static javax.swing.JOptionPane.showMessageDialog
Dónal,
39

Zakładając, że masz już JFrame do wywołania tego z:

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

Zobacz samouczki Java: jak tworzyć okna dialogowe
Zobacz JavaDoc

Bill the Lizard
źródło
5
Pierwszy argument może dotyczyć, nulljeśli nie masz JFramedostępnego.
Drew Noakes
7
Uwaga (dla kogo to może dotyczyć): JOptionPanejest wjavax.swing
Evgeni Sergeev
32

Jeśli nie lubisz „gadatliwości”, zawsze możesz opakować swój kod w krótką metodę:

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

i zastosowanie:

msgbox("don't touch that!");
Joe Cotton
źródło
25

Nawet bez importowania zamachu możesz odebrać połączenie w jednym, długim łańcuchu. W przeciwnym razie użyj importu swing i prostego wywołania:

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

Wystarczająco łatwe.

OnResolve
źródło
9

Wywołaj metodę "setWarningMsg ()" i przekaż tekst, który chcesz pokazać.

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

Lub po prostu użyj

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

Możesz użyć JOptionPane. (WARNING_MESSAGE lub INFORMATION_MESSAGE lub ERROR_MESSAGE)

Mahfuz Ahmed
źródło