Как представить простое предупреждающее сообщение в Java?

128

Исходя из .NET, я так привык вызывать Alert () в настольных приложениях. Однако в этом настольном java-приложении я просто хочу предупредить сообщение "спасибо за использование java". Мне нужно пережить столько страданий:

(с использованием JOptionPane)

Есть способ попроще?

Haoest
источник
10
Что именно вы ждете от «попроще»? Если это многословие, почему бы просто не обернуть его каким-нибудь статическим служебным методом и, например, спрятать? Кстати, официальное руководство здесь .
BalusC 02
5
Если вы прочитаете документацию, а не учебники 12-летней давности и сразу же пожалуетесь, вы обнаружите [перегрузку всего с двумя параметрами: docs.oracle.com/javase/7/docs/api/javax/swing/… , java.lang.Object). (Первое из которых может быть нулевым.)
millimoose

Ответы:

240

Я первым признаю, что Java может быть очень многословной, но я не думаю, что это необоснованно:

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

Если вы статически импортируете, javax.swing.JOptionPane.showMessageDialogиспользуя:

import static javax.swing.JOptionPane.showMessageDialog;

Далее это сводится к

showMessageDialog(null, "This is even shorter");
Донал
источник
34
Нет ничего плохого в многословии. Собственно, я считаю это одной из его сильных сторон.
MRE
14
@mre Думаю, это либо шутка, либо вы неправильно поняли "многословие"?
Dónal
36
@mre, если вам не нужна практика набора текста для перехода на секретарскую работу, я не понимаю, насколько желательна многословность.
Dónal
5
@ Dónal Когда какая-то простая вещь требует для работы целой страницы кода, это действительно создает массу дополнительных рабочих мест для людей! :)
Евгений Сергеев
5
@Alids, чтобы использовать вторую версию, вам нужно добавить следующее к вашему импортуimport static javax.swing.JOptionPane.showMessageDialog
Dónal
38

Предполагая, что у вас уже есть JFrame для вызова этого:

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

См . Учебники по Java: Как сделать диалоги
См. JavaDoc

Билл Ящерица
источник
4
Первый аргумент может быть, nullесли у вас нет JFrameдоступного.
Дрю Ноукс
5
Примечание (для кого это может касаться): JOptionPaneнаходится вjavax.swing
Евгений Сергеев
31

Если вам не нравится «многословие», вы всегда можете заключить свой код в короткий метод:

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

и использование:

msgbox("don't touch that!");
Джо Коттон
источник
24

Даже без импорта свинга вы можете получить вызов в одной, пусть даже длинной, струне. В противном случае просто используйте импорт свинга и простой вызов:

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

Достаточно просто.

OnResolve
источник
6

Вызовите метод setWarningMsg () и передайте текст, который вы хотите показать.

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

Или просто используйте

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

Вы можете использовать JOptionPane. (WARNING_MESSAGE или INFORMATION_MESSAGE или ERROR_MESSAGE)

Махфуз Ахмед
источник