弹出消息框

2022-08-31 13:16:13

我不确定如何在我的方法中编写弹出消息框。

public String verify(){
    String result = "failed";
    int authcode = staffBean.getVerifyCodeByName(getLoginUserName());

    if (code == authcode){       
        result ="success";
    }    
    else{ //statement to popup an error message box

    }
    return result;
}

我试图在我的方法中使用,但它不起作用:JOptionPane

String st = "Welcome";
JOptionPane.showMessageDialog(null, st);

答案 1

javax.swing.JOptionPane

以下是每当我想要弹出一个信息框时调用的方法的代码,它会占用屏幕直到它被接受:

import javax.swing.JOptionPane;

public class ClassNameHere
{

    public static void infoBox(String infoMessage, String titleBar)
    {
        JOptionPane.showMessageDialog(null, infoMessage, "InfoBox: " + titleBar, JOptionPane.INFORMATION_MESSAGE);
    }
}

第一个参数(在本例中)用于对齐对话框。 使它在屏幕上居中,但是可以指定任何对话框,并且对话框将出现在该对话框的中心。JOptionPanenullnulljava.awt.ComponentComponent

我倾向于使用String来描述从代码中调用框的位置,这样,如果它变得烦人,我可以轻松跟踪并删除负责用infoBox发送垃圾邮件的代码。titleBar

要使用此方法,请调用:

ClassNameHere.infoBox("YOUR INFORMATION HERE", "TITLE BAR MESSAGE");

javafx.scene.control.Alert

有关如何使用 JavaFX 对话框的深入描述,请参阅 code.makery 的 JavaFX Dialogs (official)。它们比 Swing 对话框更强大、更灵活,其功能远不止弹出消息。

如上所述,我将发布一个小示例,说明如何使用JavaFX对话框来实现相同的结果。

import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.application.Platform;

public class ClassNameHere
{

    public static void infoBox(String infoMessage, String titleBar)
    {
        /* By specifying a null headerMessage String, we cause the dialog to
           not have a header */
        infoBox(infoMessage, titleBar, null);
    }

    public static void infoBox(String infoMessage, String titleBar, String headerMessage)
    {
        Alert alert = new Alert(AlertType.INFORMATION);
        alert.setTitle(titleBar);
        alert.setHeaderText(headerMessage);
        alert.setContentText(infoMessage);
        alert.showAndWait();
    }
}

要记住的一件事是,JavaFX是一个单线程的GUI工具包,这意味着应该直接从JavaFX应用程序线程调用此方法。如果你有另一个线程在工作,需要一个对话框,那么看看这些SO问答:JavaFX2:我可以暂停后台任务/服务吗?以及Platform.Runlater和Task Javafx

要使用此方法,请调用:

ClassNameHere.infoBox("YOUR INFORMATION HERE", "TITLE BAR MESSAGE");

ClassNameHere.infoBox("YOUR INFORMATION HERE", "TITLE BAR MESSAGE", "HEADER MESSAGE");

答案 2

首先你必须导入:import javax.swing.JOptionPane;然后你可以用这个来调用它:

JOptionPane.showMessageDialog(null, 
                              "ALERT MESSAGE", 
                              "TITLE", 
                              JOptionPane.WARNING_MESSAGE);

空值将其放在屏幕中间。将引号中的任何内容放在警报消息下。标题显然是标题,最后一部分将像错误消息一样格式化它。如果您想要常规消息,只需将其替换为.它在很多方面都运行良好,主要是针对错误。PLAIN_MESSAGE


推荐