如何在Java中显示简单的警报消息?


128

来自.NET,因此经常在桌面应用程序中调用Alert()。但是,在此Java桌面应用程序中,我只想提醒一条消息,说“谢谢您使用Java”,我必须经历这么多痛苦:

(使用JOptionPane)

有更容易的方法吗?


10
您对“轻松”的期望是什么?如果是冗长的话,为什么不将其包装在某种静态实用工具方法中,例如将其隐藏起来呢?顺便说一句,官方教程在这里
BalusC

5
如果您阅读文档而不是12年的教程,然后立即抱怨,您会发现[仅有两个参数的重载: docs.oracle.com/javase/7/docs/api/javax/swing/…, java.lang.Object)。(其中第一个可能为空。)
millimoose 2012年

Answers:


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 2012年

14
@mre我想这可能是个玩笑,或者您误解了“冗长”?
2012年

36
@mre除非您需要打字练习才能过渡到秘书工作,否则我不明白冗长是多么理想。
2012年

5
@Dónal当一些简单的事情需要一整页代码才能开始工作时,确实为人们带来了很多额外的工作!:)
Evgeni Sergeev 2015年

5
@Alids使用第二个版本,你需要将以下添加到您的进口import static javax.swing.JOptionPane.showMessageDialog
多纳尔


31

如果您不喜欢“冗长”,则可以始终用短方法包装代码:

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

和用法:

msgbox("don't touch that!");

24

即使不导入swing,您也可以将一个字符串(长而长的字符串)一并获得。否则,只需使用swing导入和简单调用即可:

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)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.