如何在java中呈现简单的警报消息?

来自 .NET,我很习惯在桌面应用程序中调用 Alert()。然而,在这个 Java 桌面应用程序中,我只想提醒一条消息说“感谢您使用 Java”我必须经历这么多痛苦:

(使用 JOptionPane)

有没有更简单的方法?

6,66244金徽章3434枚银徽章5959枚铜牌
问2012 年 2 月 2 日 20:27
豪斯特
12.8k2828枚金徽章8686银徽章105105个青铜徽章
  • 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");
阿杰
41766银徽章1919枚铜牌
2012 年2 月 2 日 20:31回答
多纳尔
177k166166金徽章543543银徽章793793青铜徽章
  • 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

弥敦道
6,20566金徽章4343银徽章6363枚铜牌
2012 年2 月 2 日 20:32回答
比尔蜥蜴
371k202202金徽章547547银徽章843843铜牌
  • 5
    第一个参数可以是null如果您没有JFrame可用的。 —— 德鲁·诺克斯 2014 年 8 月 28 日 21:19
  • 7
    注意(它可能关注的人):JOptionPanejavax.swing —— 叶夫根尼·谢尔盖耶夫 2015 年 3 月 4 日 7:47
35

如果你不喜欢“冗长”,你总是可以用一个简短的方法包装你的代码:

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

和用法:

msgbox("don't touch that!");
多纳尔
177k166166金徽章543543银徽章793793青铜徽章
13 年 9 月 30 日 18:00 回答
乔·科顿
47144银徽章55个青铜徽章
28

即使不导入swing,您也可以一键调用,无论是长字符串。否则只需使用 Swing 导入和简单调用:

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

很容易。

大卫·莫尔斯
39.8k2424枚金徽章122122银徽章211211枚青铜徽章
2012 年2 月 2 日 20:32回答
解决
3,94833金徽章2525银徽章4646枚铜牌
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)

15 年 12 月 9 日 10:14 回答
马夫兹艾哈迈德
60088银徽章2323枚铜牌
0

可以像 javascript 一样使用此代码:

void alert(String str){
        JOptionPane.showMessageDialog(null, str);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值