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

RFE: Allow AWT peers to be always "on top".

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Duplicate
    • Icon: P4 P4
    • None
    • 1.3.0
    • client-libs
    • generic
    • generic



      Name: yyT116575 Date: 02/16/2001


      java version "1.3.0"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0-C)
      Java HotSpot(TM) Client VM (build 1.3.0-C, mixed mode)

      I would like to create a JWindow, which remains always on top of the other
      windows/frames in my application. You could imagine a window like the toolbars
      of products running on Windows like MS Office or Adobe PhotoShop, which
      1. when dragged out of the main frame stay always visible and in front of the
      application's main frame and
      2. don't grab the focus until the user wants it.

      More detail explanation:

      In the following text when I write "window", please understand it as
      "JFrame", "JWindow", "JDialog", even the AWT- "Frame", "Window" and
      "Dialog".

      But I need to implement a toolbar, which the user can drag out of the main
      window and drop somewhere on the desktop. In the windows environment all
      applications with floating toolbars allow this. Further they allow the user
      to move his main window around and to have the toolbar still visible on top
      of it.

      So, if I use JInternalFrames, I can get the behavior until the user wants to
      drag the toolbar out of the main window. I can implement a toolbar like the
      JToolBar to have full control over what the uesr is doing. But when the user
      drops the toolbar somewhere out of the main window, the only possibility for
      now is to create a new JWindow or JFrame or Window or Frame and put the
      toolbar there (This is actually what the L&F-dependent subclasses of
      ToolBarUI do.) The problem is that the new created window is not always "on
      top" of the main window, but only when they are not overlapping.

      In my RFE I've written, that the behavior should be implemented for
      AWT-peers, not because I don't like Swing, but because I think this is
      conceptually the cleanest (and may be the easiest - there should be only one
      flag which is translated in a native function call) way to do it.

      Another posibility would be to implement for the toolbar window a
      WindowDeactivateListener which activates the window again and trasferres all
      AWT events to it's parent (the main window)...

      The behavior I describe is very natural for every Windows- (and I think also
      Mac- and Linux-)user, and my users expect it also.

      I could implement it using native calls, but I think, I'm not the only one
      needing multiple toolbars which are always visible in a platform independent
      way. As a reference here are a couple of products with such toolbars:
      all MS Office applications (Word, Excel etc.), all Corel (Draw, Paint etc.)
      Applications, all Adobe applications (PhotoShop, InDesign etc), Netscape
      Navigator (Multiple floating toolbars is also an issue not adressed by Swing,
      but we were happy to see the problem solved...:)
      (Review ID: 117030)
      ======================================================================

            ehawkessunw Eric Hawkes (Inactive)
            yyoungsunw Yung-ching Young (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: