Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6424564

Browser window is not blocked by the modal dialog

XMLWordPrintable

    • b01
    • x86
    • windows_xp

      a. Run the applet below
      b. press "call dialog" button. This creates a modal dialog and a new browser window.

      Expected behavior: the new browser window should be completely blocked by the modal dialog
      Actual behavior: The new IE window is not blocked, the IE menu is active

      TC05-01_Top.html
      ----------------
      <APPLET CODE="SampleApplet.class" WIDTH=300 HEIGHT=220>
        <PARAM NAME="PAGE" VALUE="TC05-01_Top.html">
      </APPLET>

      SampleApplet.java
      -----------------
      import java.awt.*;
      import java.awt.event.*;
      import java.applet.*;
      import javax.swing.*;
      import java.net.URL;

      public class SampleApplet extends JApplet{
          private JButton jButton1 = new JButton();

          public SampleApplet() {
          }

          public void init() {
              try {
                  jbInit();
              }
              catch(Exception e) {
                  e.printStackTrace();
              }
          }

          private void jbInit() throws Exception {
              jButton1.setBounds(new Rectangle(56, 98, 135, 38));
              jButton1.setText("Call Dialog");
              jButton1.addActionListener(new java.awt.event.ActionListener() {
                  public void actionPerformed(ActionEvent e) {
                      jButton1_actionPerformed(e);
                  }
              });
              this.getContentPane().setLayout(null);
              this.setSize(new Dimension(400,300));
              this.getContentPane().add(jButton1, null);
          }

          public void start() {
          }

          public void stop() {
          }

          public void destroy() {
          }

          void jButton1_actionPerformed(ActionEvent e) {
              String strOption[] = new String[2];
              strOption[0] = "OK";
              strOption[1] = "Cancel";
      (new ThreadX(this)).start();
             
              JOptionPane.showOptionDialog(this, "Hello", "Hello", JOptionPane.DEFAULT_OPTION,
      JOptionPane.PLAIN_MESSAGE, null, strOption, strOption[0]);
          }

          class ThreadX extends Thread{
        
              SampleApplet jap = null;

              ThreadX(SampleApplet jap){
      this.jap = jap;
        }

         public void run(){
      try {
                   Thread.sleep(1000);

          this.jap.getAppletContext().showDocument(new URL(this.jap.getCodeBase()+this.jap.getParameter("PAGE")), "_blank");
      }
          catch (Exception ex) {
              ex.printStackTrace();
               }
      }
      }
      }

            ccheung Calvin Cheung
            ksoshals Kirill Soshalskiy (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: