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

Frame goes black with Frame on multiple monitors

XMLWordPrintable

    • x86
    • windows_xp

      FULL PRODUCT VERSION :
      java version "1.6.0_12"
      Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
      Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)

      ADDITIONAL OS VERSION INFORMATION :
      Microsoft Windows XP [Version 5.1.2600]

      A DESCRIPTION OF THE PROBLEM :
      There are times when awt top level components (or swing ones for that matter) do not paint themselves.

      This can be seen in the code provided.


      On my machine, with two monitors set up to cover the space (-1600,0,3200,1200) all of the frame on the left is painted black where all of the frame on the right monitor is painted correctly with multicolored boxes. Two things are necessary to make this condition exist.

      1) The frame must have setUndecorated(true)
      2) the frames' left bounds must be exactly on the far left edge of the screen (x=-1600 in my case)

      I tested this against the only other JRE I have, jdk1.6.0_05 and this error did not occur

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Run the above code in a main method. Change the setBounds to the bounds of your entire multi-monitor view

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      Multicolored stacked rectangles inset upon each other
      ACTUAL -
      The correct pattern on one screen, and the incorrect pattern on the other

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------

      Frame b = new Frame(){
      @Override
      public void paint(Graphics g)
      {
      for(int i=0; i<getHeight()/2; i++)
      {
      g.setColor(new Color(new Random().nextInt()));
      g.drawRect(i, i, getWidth()-i*2, getHeight()-i*2);
      }
      }
      };
      b.setUndecorated(true);
      b.setBounds(new Rectangle(-1600,100,1700,500));
      b.setVisible(true);
      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      Set the bounds to something other than the exact left edge of the screen

      Release Regression From : 6
      The above release value was the last known release where this
      bug was not reproducible. Since then there has been a regression.

            dcherepanov Dmitry Cherepanov
            dcherepanov Dmitry Cherepanov
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: