The problem that you have observed is a Swing 1.0.2 problem, A patch is
available if you want to create your own swing_fix.jar with 1.0.2
src.zip that comes with Swing 1.0.2 (that is what I did and it works).
Here is the patch info:


                          Back to General Info Bulletin Board   |
WebForum Index

 Under Linux under some window managers and on the Macintosh, the swing
menus do not appear properly on the screen (i.e. displaced) until a
resize is done on the frame.

This is a known bug. A fix has been posted under Javasoft BugParade
under Bug 4121943.

The correct fix appears at the bottom of the bug post (the changes to
SwingUtilities.java).

Here is the patch in case you want to incorporate it:

                          --- SwingUtilities.java.orig Thu Jun 18
09:16:00 1998
                          +++ SwingUtilities.java Thu Jun 18 09:15:39
1998
                          @@ -230,7 +230,19 @@
                          p.y += y;

                          if(c instanceof java.awt.Window || c
instanceof java.applet.Applet)
                          - break;
                          + // Changed by Myron Scott 3.23.98
                          +
                          + {
                          + Point inside = c.getLocationOnScreen();
                          + Point outside = c.getLocation();
                          + p.x += (inside.x - outside.x);
                          + p.y += (inside.y - outside.y);
                          + break;
                          + }
                          + // break;
                          +
                          + // End change
                          +
                          c = c.getParent();
                          } while(c != null);
                          }
                          @@ -257,7 +269,19 @@
                          p.y -= y;

                          if(c instanceof java.awt.Window || c
instanceof java.applet.Applet)
                          - break;
                          + // Changed by Myron Scott 3.23.98
                          +
                          + {
                          + Point inside = c.getLocationOnScreen();
                          + Point outside = c.getLocation();
                          + p.x -= (inside.x - outside.x);
                          + p.y -= (inside.y - outside.y);
                          + break;
                          + }
                          + // break;
                          +
                          + // End change
                          +
                          c = c.getParent();
                          } while(c != null);
                          }


I hope this helps.

Kevin

Reply via email to