JOptionPane.showMessageDialog BLOCKS my application

ohhhhhhhh, this one drives me crazy.
The code below will show the message "msg: 884R, Chcek your account!" when the user log to the system.
THE PROBLEM: say the user activate the application and recieved this message, and then he switches to a different application (e.g, IE) and returns to the application - HE DOESN'T SEE THE MESSAGE, hence, the application is BLOCKED!!! :-(
ANYONE???!?!?!
if (secDB.pendingUsers())
Component c = SwingUtilities.getRoot((Component)e.getSource());
JFrame parentFrame = (JFrame)c;                              JOptionPane.showMessageDialog(parentFrame, "msg: 884R, Chcek your account!");
}

It works for meimport java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test3 extends JFrame {
  public Test3() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container content = getContentPane();
    JButton jb = new JButton("Show Optionpane");
    content.add(jb, BorderLayout.SOUTH);
    jb.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent ae) {
        JOptionPane.showMessageDialog(SwingUtilities.getRoot((Component)ae.getSource()),
                                      "This is a message");
    setSize(300,300);
    setVisible(true);
  public static void main(String[] args) { new Test3(); }
}

Similar Messages

  • JOptionPane event blocking problem

    Hi,
    JOptionPane is causing me a problem.
    I have a simple frame that contains a text field and a button.
    Pressing the button should write something to the standard output.
    When the text field loses focus a JOptionPane in poped to the user.
    The following scenario is problematic:
    1. The text field owns the focus.
    2. The user presses the button.
    Expected result:
    The JOptionPane appears due to the lost focus event on the text field.
    After closing it some text is written to the standard output due to the action event on the button.
    The actual result:
    The JOptionPane does appears but after closing it nothing is written to the standard output. The button stays in a curious state (when the mouse hovers over the button the button looks pressed, and when the mouse doesn't hover over the button the button looks unpressed).
    Probable reason for this behaviour:
    The JOptionPane blocks all awt/swing events while it is opened. Some of the button code is perfomed due to the button press, but the ActionListener's actionPerformed method is not invoked.
    I need the actionPerfomed method to be invoked.
    Can anyone help me?
    Here is the source code:
    package test;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.text.*;
    import java.awt.*;
    import java.awt.event.*;
    public class Test {
    public Test() {
    public static void main(String[] args) {
    //Test test1 = new Test();
    final JFrame f = new JFrame("Test");
    JButton b = new JButton("Click Here");
    JTextField tField = new JTextField("Text", 10);
    f.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    b.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    System.out.println("Button pressed!");
    tField.addFocusListener(new FocusAdapter() {
    public void focusLost(FocusEvent e) {
    if (e.isTemporary()) return;
    JOptionPane.showMessageDialog(f,
    "Focus lost",
    "Title",
    JOptionPane.INFORMATION_MESSAGE);
    JPanel content = (JPanel)f.getContentPane();
    content.setLayout(new BoxLayout(content, BoxLayout.X_AXIS));
    content.add(tField);
    content.add(Box.createHorizontalStrut(5));
    content.add(b);
    f.pack();
    f.show();
    Thanks,
    Shai

    Hello Shai.
    The JOptionPane seems to consume all events when its shown. (Check the stack after JOptionPane is shown.) I've solved a similar problem with the SwingUtilities.invokeLater() method. Maybe the following example will help:
    Runnable doDlgError = new Runnable() {
    public void run() {
    JOptionPane.showMessageDialog(this, "Error", "Error",
    JOptionPane.ERROR_MESSAGE);
    SwingUtilities.invokeLater(doDlgError);
    -Olaf

  • JOptionPane.showMessageDialog auto closed by itself

    Hi guys,
    I"m facing a very weird issue. Our application is written in Swing and we encounter that the JOptionPane is automatically closed.
    <code>
    logger.debug( "Showing message dialog" );
    JOptionPane.showMessageDialog( this,
    "Some message" );
    logger.debug( "Message dialog returned" );
    </code>
    In the logs we have found out that it printed both directly. The user didn't have the chance to click OK button.
    We are using JDK 1.5.0_15, Windows XP Pro SP2
    Thanks.

    You need to create a "Short, Self Contained, Compilable
    and Executable, Example Program (SSCCE)",
    see http://homepage1.nifty.com/algafield/sscce.html,
    that demonstrates the incorrect behaviour, because I can't
    guess exactly what you are doing based on the information provided.
    Don't forget to use the "Code Formatting Tags",
    see http://forum.java.sun.com/help.jspa?sec=formatting,
    so the posted code retains its original formatting.

  • JOptionPane.showMessageDialog ( ERROR_MESSAGE)

    hi can anyone help...
    i am using a
    JOptionPane.showMessageDialog ( ERROR_MESSAGE)
    to validate my input in some textfields... and when
    there is an ERROR the merror message will pop up...
    how to write the code so that when the user click the
    OK button inside the pop-up msg , the button can
    handle some functions as to reset some variable....??

    If you read the javadocs for JOptionPane you will find that the dialog you get from calling any JOptionPane.showXXXDialog method is modal. Consequently, when you have called showMessageDialog the current thread will be blocked until the user presses the OK button. So you can just put your reset handling code after the call to showMessageDialog, like the following little program demonstrates:
    import java.awt.event.*;
    import javax.swing.*;
    public class OptionPaneErrorTest {
        public static void main(String[] args) {
            ApplicationFrame app = new ApplicationFrame();
            app.setVisible(true);
        private static class ApplicationFrame extends JFrame {
            public ApplicationFrame() {
                JButton btn = new JButton("Click Me");
                btn.addActionListener( new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        JOptionPane.showMessageDialog(null, "This is an error message", "Error", JOptionPane.ERROR_MESSAGE);
                        System.out.println("This will get printed when the user presses the OK button");
                getContentPane().add(btn);
                pack();
    }Hope this helps.

  • Missing message on JOptionPane.showMessageDialog

    Hi,
    I created two JTrees and drew a line from a node in one tree to a node in another tree.
    After the mouse was released, I showed a message using JOptionPane.showMessageDialog(null, message). The message was not displayed. But if I show the message dialog box before I draw the line,
    the message is displayed.
    Could someone point me the possible problems or any similar example code?
    Thanks in advance!
    Jing

    Hi,
    First of all thanks for ur reply.I think u r not getting my point i don't want that my process waits for the JDialog to be closed.I want that my first Dialog should close automatically when my next Dialog pop up.My application requirement is i want to show two types of dialog one is when my work is going on "Please wait.." and another is when my work has beeen completed confimation message "Work has been completed".I want that when my work has beeen completed then my "Please wait.." dialog box should close automatically and confimation message dialog box should pop up.Plz guide me how i can do that.
    Regards
    Bikash

  • JOptionPane.showMessageDialog not working

    I have create an application in NetBeans IDE on windows XP, all things are going right on windows XP, but when I migrate this jar file to linux my application is hanged when executing this line....
    JOptionPane.showMessageDialog(ConfigTab, "Configuration saved.");
    Is this issue is due to java version?....on windows my java version is jre1.5.0_06 and on linux jre1.5.0_08.

    Faisal_Ahmed wrote:
    I have create an application in NetBeans IDE on windows XP, all things are going right on windows XP, but when I migrate this jar file to linux my application is hanged when executing this line....
    JOptionPane.showMessageDialog(ConfigTab, "Configuration saved."); Is this called on the EDT? Or better still, can you provide an SSCCE that shows the behaviour?
    Is this issue is due to java version?No. It is most likely due to broken code.

  • How to set font for  JOptionPane.showMessageDialog() ?

    Hi,
    I want to set font for JOptionPane.showMessageDialog(). I have tried with following but it did not worked.
    javax.swing.UIManager.put("JOptionPane.font", "Verdana"); Do any one have idea how to do this. Your suggestion would be helpfull to me.
    Thank you.

    Then you'll have to loop over the components in the JOptionPane and setFont for each JButton. My SwingUtils class (search the net using Darryl SwingUtils, I can't give you a link as it's blocked from my office) can make this easier.
    Sample code:import darrylbu.util.SwingUtils;
    import java.awt.Font;
    import javax.swing.*;
    import javax.swing.plaf.FontUIResource;
    public class OptionPaneFonts {
       public static void main(String[] args) {
          UIManager.put("OptionPane.messageFont", new FontUIResource(new Font(
                  "Verdana", Font.BOLD, 32)));
          SwingUtilities.invokeLater(new Runnable() {
             @Override
             public void run() {
                new OptionPaneFonts().makeUI();
       public void makeUI() {
          JOptionPane pane = new JOptionPane("So it's a date?",
                  JOptionPane.QUESTION_MESSAGE,
                  JOptionPane.YES_NO_CANCEL_OPTION,
                  UIManager.getIcon("OptionPane.questionIcon"),
                  new String[]{"Okey-dokey", "Not on your life!",
                     "Let me think about it"
                  }, null);
          for (JButton button : SwingUtils.getDescendantsOfType(JButton.class, pane)) {
             button.setFont(new Font("Tahoma", Font.ITALIC, 18));
          JDialog dialog = new JDialog((JWindow) null);
          dialog.setModal(true);
          dialog.add(pane);
          dialog.pack();
          dialog.setLocationRelativeTo(null);
          dialog.setVisible(true);
    }db
    Edited by: DarrylBurke -- shortened the code

  • Webutil_host.blocking procedure blocking the application intermittently

    we are using webutil_host.blocking procedure to open a word document and have the application blocked until word document is closed. It opens the word document fine but blocking the application intermittently. Since it was not blocking intially, I started debugging and tried recompiling the form. It is now blocking the application fine, with no change in the code. It is definitely not the recompilation that made the trick because I compiled the form many times earlier while I was working on other parts of the form. Please share your expertise if anyone had the same issue.

    we are using Forms 10.1.2.0.2 with Webutil 1.0.6

  • JOptionPane.showMessageDialog() - word wrapping exceptions?!

    Hey ppl,
    Probably a silly question...
    I'm currently working with JDBC, and SQLexceptions can be very long! Currently displaying them in a JOptionPane.showMessageDialog() (as i guess most people do?), but being so long they cause it to span the whole screen & then some!
    I looked through the JOptionPane API, but didn't spot anything that might help. Is there a way to get this exception to dispaly on multiple lines, kinda like word wrap in notepad?
    Cheers for any suggestions.
    Jim

    I can't speak for other developers..But as for myself, I rarely if ever print error messages to the JOptionPane. Almost always, I print my error messages and the stack if necessary, to the ouput. This is either a command line window, console, log file, or output screen in an ide depending upon how you program. My code looks something like this.
    catch(Exception e)
        System.out.println(e.getMessage());  // Will print only the message property of the exception
        e.printStackTrace();  // Will print the stack for more information
    }Sorry I couldn't answer your question directly. Maybe someone else can. Hope I was helpful anyway.

  • Change Button Name in JOptionPane.showMessageDialog

    Hello,
    I've written the following code that invokes a JOPtionPane messageDialog, when the delete button is hit in the following frame and the selectedItem in the JComboBox is Default.
    I want to change the JOPtionPane button name from OK to Close. Is there a way to do this with error message dialoges, as their is with confirmDialoges?
    Please help out.
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    public class MyJOptionPaneTest {
         public MyJOptionPaneTest()
              JFrame frame = new JFrame("My Frame");
              JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT,5,0));
              final JComboBox myComboBox = new JComboBox();
              myComboBox.setPreferredSize(new Dimension(100,20));
              myComboBox.getModel().setSelectedItem("Default");
              myComboBox.addItem("Default");
              myComboBox.addItem("Other");
              JButton deleteButton = new JButton("Delete");
              deleteButton.addActionListener(new ActionListener()
                   public void actionPerformed(ActionEvent e)
                        if(myComboBox.getSelectedItem().equals("Default"))
                             JOptionPane.showMessageDialog(null, "Default cannot be deleted", "Error", JOptionPane.ERROR_MESSAGE);
              panel.add(myComboBox);
              panel.add(deleteButton);
              frame.getContentPane().add(panel);
              frame.setSize(200,100);
              frame.setResizable(false);
              frame.setVisible(true);
         public static void main(String [] args)
              MyJOptionPaneTest test = new MyJOptionPaneTest();
    }

    Hi,
    yes, I've looked at the tutorials. But there is no way to change button title for JOptionPane.showMessageDialog. Only JOptionPane.showOptionsDialog provides you w/ that feature, becuz it provides the parameter in the method.
    I was wondering if there was another way to do this for showMessageDialog.

  • InputVerifier and JOptionPane.showMessageDialog

    Since I have intalled JDK 1.4. I have got the following Problem:
    in the verify Method there is a call to JOptionPane.showMessageDialog
    in order to show a error message if the input doesn�t match and before false is returned.
    It doesn�t work anymore with 1.4. In case of error, the message Dialog is not coming up and the verify methodis just called in a endless loop.

    try setting the InputVerifier to null before displaying the JOptionPane, then set it back after the JOptionPane.
    textField.setInputVerifier(null)
    JOptionPane.showMessageDialog(...)
    textField.setInputVerifier(this)

  • I want to block gambling applications on my iphone as i have a gambling addiction

    I want to block gambling applications on my iphone as i have a gambling addiction

    If you look in Settings-->General--> Accessibility, you will see there is an option called "restrictions" or something like that.
    Ask someone who knows you to set up a code unknown to you and select in apps to authorize only 4+, 9+, 12+ and 17+ apps, since gambling apps should be available to only 18+

  • Is there a firewall that can block an application?

    I'm looking for a firewall that can block applications.
    The firewalls for linux that I've found using google and also the one I'm using now can not block an application. There used to be an option for iptables (-m owner --cmd-owner programname), but since kernel 2.6.14 they've removed this option for iptables.

    eric, when you say u want to block applications, do you mean you want to block some of your applications getting out, or illicit use of ports for someone to get in ?
    if its the latter, it may be that the firewall rules regarding "accepted, related, established" cover this as when you make rules, whichever firewall application u use, you can drop any incoming connections that arent following the state matches in your ruleset.
    if you are concerned about ports being open to accept certain programs data, go to www.grc.com and use Shields Up to check. its a long while since i used any of this as i have a hardware firewall/router now, so apologies for lack of detail.
    iptables/netfilter help here

  • JOptionPane.showMessageDialog vs JOptionPane.showInternalMessageDialog

    This is my first post to the message boards, so please don't be too hard on me if this is really obvious...
    I'm trying to show a pop-up box with a message to indicate an error to the user; the JOptionPane.showMessageDialog works just fine, however when I use JOptionPane.showInternalMessageDialog, I get a NullPointerException being thrown by the L&F component(s) as follows (I'm currently running this as an applet via appletviewer):
    Exception occurred during event dispatching:
    java.lang.NullPointerException
    at javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControlDarkShadow(MetalLookAndFeel.java:1083)
    at javax.swing.plaf.metal.MetalBorders$OptionDialogBorder.paintBorder(MetalBorders.java:188)
    at javax.swing.JComponent.paintBorder(JComponent.java:574)
    at javax.swing.JComponent.paint(JComponent.java:740)
    at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:23)
    at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:54)
    at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:91)
    at java.awt.Container.paint(Container.java:960)
    at java.awt.Container.update(Container.java:981)
    at sun.awt.RepaintArea.update(RepaintArea.java:337)
    at sun.awt.motif.MComponentPeer.handleEvent(MComponentPeer.java:404)
    at java.awt.Component.dispatchEventImpl(Component.java:2722)
    at java.awt.Container.dispatchEventImpl(Container.java:1214)
    at java.awt.Component.dispatchEvent(Component.java:2556)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:333)
    at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:103)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:84)
    I guess that I've really got two questions about this whole thing... 1) What could be causing the NullPointerException and 2) What is the real difference between JOptionPane.showMessageDialog and JOptionPane.showInternalMessageDialog?

    Here's the call that I'm using to the function -- sorry for not posting that originally...
    JOptionPane.showInternalMessageDialog( this, getString( "Messages.NoPOsSelected" ), "Error", JOptionPane.ERROR_MESSAGE );Where "this" should be the applet itself, since this is being called from a function within the JApplet.

  • How to activate a link in JOptionPane.showMessageDialog()

    i have the following code (the color of "Email Me" is blue)
    JOptionPane.showMessageDialog
       parent,
       "<html><a href=\"mailto:[email protected]\">Email Me </a></html>"
       "dialog title",
       JOptionPane.PLAIN_MESSAGE
    );"Email Me" is blue and underlined but nothing happened when clicked on.
    please help. thanks.

    hi ra
    good question dear
    if you want to activate cube in business content do this steps.
    1).select your data source and maintain all the things in r/3 side.
    2).then come to bi side .
    3).t-code rsorbct.
    4).you must have an idea about your app component .i..e that app belongs to sd or mm or hr or finance .
    5).if it belongs to purchasing select infoobj and select supply chain management ,select purchasing.
    6).select char and key fig,drag and drop it into right side component .
    7).select info provider select supply chain management and select your cube .
    8).how to find cube .that is cube like 0pur_c01,c02,c03,c04 like that select any of the cube and drop in to right side component .
    9).now installation part.
    10).select source system top side and select your source ecc 6.0, select component and select install/activate.
    11).now your cube is ready to use .create package for full,initialize ,delta.ok
    bye ....................samar reddy...

Maybe you are looking for

  • My screen disappeared and I can't get it back

    I posted this problem last week, but I may not have explained it properly. While on Firefox, the page suddenly disappeared and all I can get is a picture of the page when I mouse over the icon in the taskbar. Clicking on the picture doesn't restore t

  • Is there anyway to order an attachment that woud let an HP Officejet 6500print directly to a cd/dvd?

    OR AN HP PRINTER THAT DOES THIS

  • Certain Airport setting is keeping me from some webpages.

    I originally posted this thread in the Safari forum but I found out that the problem isn't with Safari it's with how Airport is connecting to the internet. Here is a link to the original thread: http://discussions.apple.com/thread.jspa?threadID=16257

  • Date format in Dutch

    Hi, I am using a query to display a date. I am selecting TO_CHAR (c.DAY_DATE, 'DD mon YYYY') where DAY_DATE is of type DATE I am getting the following result: 05 oct 2011 This is in English. Is there a way to get it in Dutch language, such as: 05 okt

  • Error Statements in PL/SQL Code

    Hello Everyone: I have a PL/SQL routine that I need to add "Error Statments" in case something errors when it is ran, the user will know and be able to fix the issue. Below is a copy of what I need to run. It is a one off that this will only be ran o