来自 .NET,我很习惯在桌面应用程序中调用 Alert()。然而,在这个 Java 桌面应用程序中,我只想提醒一条消息说“感谢您使用 Java”我必须经历这么多痛苦:
(使用 JOptionPane)
有没有更简单的方法?
-
10你究竟对“更容易”有什么期望?如果它是冗长的,为什么不将它包装在一些静态实用程序方法中并将其隐藏起来,例如?顺便说一下,官方教程在这里。 —— BalusC 2012 年 2 月 2 日 20:28
-
5如果您阅读文档而不是 12 年前的教程,然后立即抱怨,您会发现 [只有两个参数的重载: docs.oracle.com/javase/7/docs/api/javax/swing/..., java.lang.Object)。(第一个可能为空。) – 驼鹿 2012 年 2 月 2 日 20:33
255
我会第一个承认 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");
-
36冗长没有错。事实上,我认为这是它的优势之一。 —— 先生 2012 年 2 月 2 日 20:32
-
15@mre 我猜这要么是个玩笑,要么是您误解了“冗长”? —— 多纳尔 2012 年 2 月 2 日 20:34
-
37@mre 除非您需要打字练习才能过渡到秘书工作,否则我不认为冗长是可取的。 —— 多纳尔 2012 年 2 月 3 日 10:52
-
7@Dónal 当一些简单的事情需要整页代码才能工作时,这确实为人们创造了很多额外的工作!:) – 叶夫根尼·谢尔盖耶夫 2015 年 3 月 4 日 7:38
-
6@Alids 要使用第二个版本,您需要在导入中添加以下内容
import static javax.swing.JOptionPane.showMessageDialog
– 多纳尔 2015-06-25 18:30
42
假设您已经有一个 JFrame 可以从以下位置调用它:
JOptionPane.showMessageDialog(frame, "thank you for using java");
请参阅Java 教程:如何制作对话框
请参阅JavaDoc
-
5第一个参数可以是
null
如果您没有JFrame
可用的。 —— 德鲁·诺克斯 2014 年 8 月 28 日 21:19 -
7注意(它可能关注的人):
JOptionPane
在javax.swing
—— 叶夫根尼·谢尔盖耶夫 2015 年 3 月 4 日 7:47
10
调用“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)
0
可以像 javascript 一样使用此代码:
void alert(String str){
JOptionPane.showMessageDialog(null, str);
}