Ich bin nicht sicher, wie Popup-Meldungsfeld in meinen Methoden codiert wird.
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;
}
Ich habe versucht, JOptionPane
in meiner Methode zu verwenden, aber es funktioniert nicht:
String st = "Welcome";
JOptionPane.showMessageDialog(null, st);
Hier ist der Code für eine Methode, die ich anrufe, wenn ein Informationsfeld angezeigt werden soll. Der Bildschirm wird so lange angezeigt, bis er akzeptiert wird:
import javax.swing.JOptionPane;
public class ClassNameHere
{
public static void infoBox(String infoMessage, String titleBar)
{
JOptionPane.showMessageDialog(null, infoMessage, "InfoBox: " + titleBar, JOptionPane.INFORMATION_MESSAGE);
}
}
Der erste JOptionPane
-Parameter (in diesem Beispiel null
) wird verwendet, um den Dialog auszurichten. null
bewirkt, dass es sich auf dem Bildschirm zentriert, es kann jedoch ein beliebiger Java.awt.Component
angegeben werden, und das Dialogfeld wird stattdessen in der Mitte der Component
angezeigt.
Ich neige dazu, titleBar
String zu verwenden, um zu beschreiben, von wo aus die Box aufgerufen wird. Auf diese Weise kann ich den Code, der für das Spammen meines Bildschirms mit infoBoxes verantwortlich ist, leicht aufspüren und löschen.
So verwenden Sie diesen Methodenaufruf:
ClassNameHere.infoBox("YOUR INFORMATION HERE", "TITLE BAR MESSAGE");
Eine ausführliche Beschreibung der Verwendung von JavaFX-Dialogen finden Sie unter: JavaFX-Dialoge (offiziell) by code.makery. Sie sind viel leistungsfähiger und flexibler als Swing-Dialoge und können weit mehr als nur das Aufrufen von Nachrichten.
Wie oben beschrieben, gebe ich ein kleines Beispiel, wie Sie JavaFX-Dialoge verwenden können, um dasselbe Ergebnis zu erzielen
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();
}
}
Dabei ist zu beachten, dass JavaFX ein GUI-Toolkit mit einem einzelnen Thread ist. Dies bedeutet, dass diese Methode direkt vom JavaFX-Anwendungsthread aus aufgerufen werden sollte. Wenn Sie einen anderen Thread haben, der Arbeit hat und der einen Dialog benötigt, dann sehen Sie diese SO Q & As: JavaFX2: Kann ich eine Hintergrund-Task/einen Service anhalten? und Platform.Runlater und Task Javafx .
So verwenden Sie diesen Methodenaufruf:
ClassNameHere.infoBox("YOUR INFORMATION HERE", "TITLE BAR MESSAGE");
oder
ClassNameHere.infoBox("YOUR INFORMATION HERE", "TITLE BAR MESSAGE", "HEADER MESSAGE");
zuerst müssen Sie importieren: import javax.swing.JOptionPane; Dann können Sie es mit folgendem Befehl aufrufen:
JOptionPane.showMessageDialog(null,
"ALERT MESSAGE",
"TITLE",
JOptionPane.WARNING_MESSAGE);
die Null stellt sie in die Mitte des Bildschirms. setzen Sie alles in Anführungszeichen unter Warnmeldung. Titel ist offensichtlich Titel und der letzte Teil formatiert ihn wie eine Fehlermeldung. Wenn Sie eine normale Nachricht wünschen, ersetzen Sie sie einfach durch PLAIN_MESSAGE
. es funktioniert in vielerlei Hinsicht ziemlich gut, meistens für Fehler.
Ein paar "Verbesserungen" verwende ich zum Debuggen, insbesondere beim Ausführen von Projekten (dh nicht im Debug-Modus).
Kopieren Sie automatisch den Anrufernamen und die Nachricht in die Zwischenablage, da Sie kein Bild suchen können!
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();
}
Die gesamte Klasse verfügt auch über Debug- und Warnmethoden, aber ich schneide sie der Kürze halber und Sie erhalten die wichtigsten Punkte trotzdem. Sie können ein öffentliches statisches boolean isDebugEnabled verwenden, um Debugmeldungen zu unterdrücken. Wenn dies ordnungsgemäß durchgeführt wird, entfernt das Optimierungsprogramm (fast) diese Methodenaufrufe aus Ihrem Produktionscode. Siehe: http://c2.com/cgi/wiki?ConditionalCompilationInJava
Prost. Keith.
JOptionPane.showMessageDialog(btn1, "you are clicked save button","title of dialog",2);
btn1 ist eine JButton-Variable und wird in diesem Dialogfeld verwendet, um die geöffnete Position btn1 oder das Textfeld usw. zu öffnen. Standardmäßig verwenden Sie die Null-Position des Frames.next, und Ihre Nachricht ist der Titel des Dialogs. 2 Zahlen des Alarmtyps Symbol 3 sind die Informationen 1,2,3,4 . Ok, ich hoffe, Sie verstehen es
Ok, SO Grundsätzlich denke ich, dass ich eine einfache und effektive Lösung habe.
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);
}
}
Verwenden Sie die folgende Bibliothek: import javax.swing.JOptionPane;
Eingabe oben in der Codezeile ..__ Sie müssen dies nur hinzufügen, da die anderen Dinge korrekt ausgeführt werden!
import javax.swing.*;
class Demo extends JFrame
{
String str1;
Demo(String s1)
{
str1=s1;
JOptionPane.showMessageDialog(null,"your message : "+str1);
}
public static void main (String ar[])
{
new Demo("Java");
}
}