popup消息框
我不确定如何在我的方法中popup消息框代码。
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);
javax.swing.JOptionPane中
当我想要一个信息框popup时,下面是我调用的一个方法的代码,它将屏幕截屏直到它被接受:
import javax.swing.JOptionPane; public class ClassNameHere { public static void infoBox(String infoMessage, String titleBar) { JOptionPane.showMessageDialog(null, infoMessage, "InfoBox: " + titleBar, JOptionPane.INFORMATION_MESSAGE); } }
第一个JOptionPane
参数(在本例中为null
)用于alignment对话框。 null
会导致它在屏幕上居中,但是可以指定任何java.awt.Component
而该对话框将显示在该Component
的中心。
我倾向于使用titleBar
string来描述代码中的框被调用的位置,这样,如果它烦人,我可以轻松地跟踪并删除负责垃圾邮件我的屏幕与infoBoxes的代码。
要使用此方法调用:
ClassNameHere.infoBox("YOUR INFORMATION HERE", "TITLE BAR MESSAGE");
javafx.scene.control.Alert
有关如何使用JavaFX对话框的深入说明,请参阅:code.makery的JavaFX对话框(官方) 。 它们比Swing对话更强大,更灵活,并且不仅仅是popup消息。
如上所示,我将发布一个小例子,介绍如何使用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应用程序线程中调用。 如果你有另一个线程正在工作,需要一个对话框然后看到这些问题: JavaFX2:我可以暂停后台任务/服务? 和Platform.Runlater和Task Javafx 。
要使用此方法调用:
ClassNameHere.infoBox("YOUR INFORMATION HERE", "TITLE BAR MESSAGE");
要么
ClassNameHere.infoBox("YOUR INFORMATION HERE", "TITLE BAR MESSAGE", "HEADER MESSAGE");
首先你必须导入: import javax.swing.JOptionPane; 那么你可以使用它来调用它:
JOptionPane.showMessageDialog(null, "ALERT MESSAGE", "TITLE", JOptionPane.WARNING_MESSAGE);
null将它放在屏幕的中间。 把警报信息中的任何内容放在引号中。 标题显然是标题,最后一部分将格式化为错误消息。 如果你想要一个常规的消息,只需用PLAIN_MESSAGE
replace它。 它在很多方面都能很好地工作,主要是因为错误。
几个“增强”我用于debugging,特别是在运行项目(即不在debugging模式)。
- 将消息框标题默认为调用方法的名称。 这对于在给定点处停止线程是方便的,但是在释放之前必须清理。
-
自动将来电名称和信息复制到剪贴板,因为您无法search图像!
package forumposts; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; import javax.swing.JOptionPane; public final class MsgBox { public static void info(String message) { info(message, theNameOfTheMethodThatCalledMe()); } public static void info(String message, String caller) { show(message, caller, JOptionPane.INFORMATION_MESSAGE); } static void error(String message) { error(message, theNameOfTheMethodThatCalledMe()); } public static void error(String message, String caller) { show(message, caller, JOptionPane.ERROR_MESSAGE); } public static void show(String message, String title, int iconId) { setClipboard(title+":"+NEW_LINE+message); JOptionPane.showMessageDialog(null, message, title, iconId); } private static final String NEW_LINE = System.lineSeparator(); public static String theNameOfTheMethodThatCalledMe() { return Thread.currentThread().getStackTrace()[3].getMethodName(); } public static void setClipboard(String message) { CLIPBOARD.setContents(new StringSelection(message), null); // nb: we don't respond to the "your content was splattered" // event, so it's OK to pass a null owner. } private static final Toolkit AWT_TOOLKIT = Toolkit.getDefaultToolkit(); private static final Clipboard CLIPBOARD = AWT_TOOLKIT.getSystemClipboard(); }
全class也有debugging和警告的方法,但我为了简洁而剪切它们,无论如何你得到的要点。 您可以使用公共静态布尔isDebugEnabled来抑制debugging消息。 如果正确完成,优化器将(几乎)从生产代码中移除这些方法调用。 请参阅: http : //c2.com/cgi/wiki?ConditionalCompilationInJava
干杯。 基思。
JOptionPane.showMessageDialog(btn1, "you are clicked save button","title of dialog",2);
btn1是一个JButtonvariables,它用于在这个对话框中打开位置btn1或者textfield等对话框,默认情况下使用frame.next的null位置消息,接下来是对话框的标题。 2号警报types图标3是信息1,2,3,4。 好的,我希望你能理解
你可以调用这个方法
public void showMessage() { JOptionPane.showMessageDialog(null, "this is a pop up message"); }
好吧,基本上我觉得我有一个简单而有效的解决scheme。
package AnotherPopUpMessage; import javax.swing.JOptionPane; public class AnotherPopUp { public static void main(String[] args) { // TODO Auto-generated method stub JOptionPane.showMessageDialog(null, "Again? Where do all these come from?", "PopUp4", JOptionPane.CLOSED_OPTION); } }