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


128

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

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

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


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

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


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)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.