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

Posted

技术标签:

【中文标题】如何在 Java 中呈现简单的警报消息?【英文标题】:How to present a simple alert message in java? 【发布时间】:2012-02-25 12:42:41 【问题描述】:

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

(使用 JOptionPane)

有没有更简单的方法?

【问题讨论】:

您对“更简单”的期望是什么?如果它是冗长的,为什么不将它包装在一些静态实用程序方法中并将其隐藏起来,例如?对了,官方教程是here。 如果您阅读文档而不是 12 年前的教程,然后立即抱怨,您会发现 [只有两个参数的重载:docs.oracle.com/javase/7/docs/api/javax/swing/…,java.lang.Object)。 (其中第一个可能为空。) 【参考方案1】:

可以像 javascript 一样简单地使用这段代码:

void alert(String str)
        JOptionPane.showMessageDialog(null, str);
    

【讨论】:

【参考方案2】:

我会第一个承认 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");

【讨论】:

冗长没有错。事实上,我认为这是它的优势之一。 @mre 我猜这要么是个玩笑,要么你误解了“冗长”? @mre 除非您需要打字练习才能过渡到秘书工作,否则我不认为冗长是可取的。 @Dónal 当一些简单的事情需要一整页代码才能工作时,这确实为人们创造了大量额外的工作! :) 嗯,一个关于冗长的论点可以从一个反例中获得——我之前已经花了相当多的时间试图解开单个紧凑行的含义。简短有时会以可读性为代价。当然,冗长不会自动赋予可读性。【参考方案3】:

如果您不喜欢“冗长”,您可以随时将代码包装在一个简短的方法中:

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

及用法:

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

【讨论】:

【参考方案4】:

调用“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)

【讨论】:

【参考方案5】:

即使不导入swing,你也可以一次接听电话,不管它很长,字符串。否则只需使用 swing 导入和简单调用:

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

很简单。

【讨论】:

【参考方案6】:

假设你已经有一个 JFrame 来调用它:

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

见The Java Tutorials: How to Make Dialogs 见the JavaDoc

【讨论】:

如果您没有可用的JFrame,第一个参数可以是null 注意(它可能关注的对象):JOptionPanejavax.swing

以上是关于如何在 Java 中呈现简单的警报消息?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SwiftUI 连续呈现两个警报视图

如何在 UserDefault 中存储推送通知警报消息?

如何在 C# 中使用警报消息来处理成功消息?

Flask:如何呈现自定义错误页面并获得 Sentry 警报?

如何播放警报声音并呈现自定义视图而不仅仅是通知?

当用户输入的时间低于预期时间时,如何在 swiftUI 中显示警报消息?