JDK-4365634 : Tooltip messes up floating toolbar
  • Type: Bug
  • Component: client-libs
  • Sub-Component: javax.swing
  • Affected Version: 1.3.0
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: generic,windows_nt
  • CPU: generic,x86
  • Submitted: 2000-08-24
  • Updated: 2000-11-28
  • Resolved: 2000-11-28
Related Reports
Duplicate :  
Description
tring ("cut"));
    menuItem_Edit_Copy.setEnabled(false);
    menuItem_Edit_Copy.setToolTipText(resourcesTooltips.getString ("copy"));
    menuItem_Edit_Copy.setMnemonic((resourcesMnemonics.getString
("mnCopy")).charAt (0));
    menuItem_Edit_Copy.setText(resourcesWindowTexts.getString ("copy"));
    menuItem_Edit_Paste.setEnabled(false);
    menuItem_Edit_Paste.setToolTipText(resourcesTooltips.getString ("paste"));
    menuItem_Edit_Paste.setMnemonic((resourcesMnemonics.getString
("mnPaste")).charAt (0));
    menuItem_Edit_Paste.setText(resourcesWindowTexts.getString ("paste"));
    menuItem_Edit_InsertNewObject.setToolTipText(resourcesTooltips.getString
("insertNew"));
    menuItem_Edit_InsertNewObject.setMnemonic((resourcesMnemonics.getString
("mnInsertNew")).charAt (0));
    menuItem_Edit_InsertNewObject.setText(resourcesWindowTexts.getString
("insertNew"));
    menuItem_Edit_SelectAllUnits.setToolTipText(resourcesTooltips.getString
("selectAll"));
    menuItem_Edit_SelectAllUnits.setMnemonic((resourcesMnemonics.getString
("mnSelectAll")).charAt (0));
    menuItem_Edit_SelectAllUnits.setText(resourcesWindowTexts.getString
("selectAll"));
    menuItem_Edit_DeleteSelection.setEnabled(false);
    menuItem_Edit_DeleteSelection.setToolTipText(resourcesTooltips.getString
("delete"));
    menuItem_Edit_DeleteSelection.setMnemonic((resourcesMnemonics.getString
("mnDelete")).charAt (0));
    menuItem_Edit_DeleteSelection.setText(resourcesWindowTexts.getString
("delete"));
    menuItem_Edit_DeleteConnection.setToolTipText(resourcesTooltips.getString
("deleteConnection"));
    menuItem_Edit_DeleteConnection.setMnemonic((resourcesMnemonics.getString
("mnDeleteConnection")).charAt (0));
    menuItem_Edit_DeleteConnection.setText(resourcesWindowTexts.getString
("deleteConnection"));

    // add menu items
    menu_Edit.add(menuItem_Edit_Undo);
    menu_Edit.addSeparator();
    menu_Edit.add(menuItem_Edit_Cut);
    menu_Edit.add(menuItem_Edit_Copy);
    menu_Edit.add(menuItem_Edit_Paste);
    menu_Edit.addSeparator();
    menu_Edit.add(menuItem_Edit_InsertNewObject);
    menu_Edit.addSeparator();
    menu_Edit.add(menuItem_Edit_SelectAllUnits);
    menu_Edit.addSeparator();
    menu_Edit.add(menuItem_Edit_DeleteSelection);
    menu_Edit.add(menuItem_Edit_DeleteConnection);
  } // initMenuEdit


  private void initMenuView () {
    // prepare menu items
    menu_View.setMnemonic((resourcesMnemonics.getString ("mnView")).charAt (0));
    menu_View.setText(resourcesWindowTexts.getString ("view"));
    menuItem_View_Toolbar.setToolTipText(resourcesTooltips.getString
("toolbar"));
    menuItem_View_Toolbar.setSelected(true);
    menuItem_View_Toolbar.setMnemonic((resourcesMnemonics.getString
("mnToolbar")).charAt (0));
    menuItem_View_Toolbar.setText(resourcesWindowTexts.getString ("toolbar"));
    menuItem_View_Statusbar.setToolTipText(resourcesTooltips.getString
("statusbar"));
    menuItem_View_Statusbar.setSelected(true);
    menuItem_View_Statusbar.setMnemonic((resourcesMnemonics.getString
("mnStatusbar")).charAt (0));
    menuItem_View_Statusbar.setText(resourcesWindowTexts.getString
("statusbar"));
    menuItem_View_Quickview.setToolTipText(resourcesTooltips.getString
("quickview"));
    menuItem_View_Quickview.setMnemonic((resourcesMnemonics.getString
("mnQuickview")).charAt (0));
    menuItem_View_Quickview.setText(resourcesWindowTexts.getString
("quickview"));
    menuItem_View_ZoomToFit.setToolTipText(resourcesTooltips.getString
("zoomToFit"));
    menuItem_View_ZoomToFit.setMnemonic((resourcesMnemonics.getString
("mnZoomToFit")).charAt (0));
    menuItem_View_ZoomToFit.setText(resourcesWindowTexts.getString
("zoomToFit"));

    // add menu items
    menu_View.add(menuItem_View_Toolbar);
    menu_View.add(menuItem_View_Statusbar);
    menu_View.addSeparator();
    menu_View.add(menuItem_View_Quickview);
    menu_View.addSeparator();
    menu_View.add(menuItem_View_ZoomToFit);
  } // initMenuView


  private void initMenuUnit () {
    // prepare menu items
    menu_Unit.setMnemonic((resourcesMnemonics.getString ("mnUnit")).charAt (0));
    menu_Unit.setText(resourcesWindowTexts.getString ("unit"));
    menuItem_Unit_Caster.setMnemonic((resourcesMnemonics.getString
("caster")).charAt (0));
    menuItem_Unit_Caster.setText(resourcesWindowTexts.getString ("caster"));
    menuItem_Unit_Caster.setToolTipText(resourcesTooltips.getString ("caster"));
    menuItem_Unit_Caster.addActionListener(new
HybrexApplet_menuItem_Unit_Caster_actionAdapter(this));
    menuItem_Unit_Submenu_Furnace.setMnemonic((resourcesMnemonics.getString
("furnace")).charAt (0));
    menuItem_Unit_Submenu_Furnace.setText(resourcesWindowTexts.getString
("furnace"));
    menuItem_Unit_Submenu_Furnace.setToolTipText(resourcesTooltips.getString
("furnace"));
    
menuItem_Unit_Submenu_Furnace_WalkingBeam.setMnemonic((resourcesMnemonics.getStr
ing ("walkingBeam")).charAt (0));
    
menuItem_Unit_Submenu_Furnace_WalkingBeam.setText(resourcesWindowTexts.getString
("walkingBeam"));
    
menuItem_Unit_Submenu_Furnace_WalkingBeam.setToolTipText(resourcesTooltips.getSt
ring ("walkingBeam"));
    
menuItem_Unit_SubMenu_Furnace_Reheating.setMnemonic((resourcesMnemonics.getStrin
g ("reheating")).charAt (0));
    
menuItem_Unit_SubMenu_Furnace_Reheating.setText(resourcesWindowTexts.getString
("reheating"));
    
menuItem_Unit_SubMenu_Furnace_Reheating.setToolTipText(resourcesTooltips.getStri
ng ("reheating"));
    menuItem_Unit_RollerTable.setMnemonic((resourcesMnemonics.getString
("rollerTable")).charAt (0));
    menuItem_Unit_RollerTable.setText(resourcesWindowTexts.getString
("rollerTable"));
    menuItem_Unit_RollerTable.setToolTipText(resourcesTooltips.getString
("rollerTable"));
    menuItem_Unit_Edger.setMnemonic((resourcesMnemonics.getString
("edger")).charAt (0));
    menuItem_Unit_Edger.setText(resourcesWindowTexts.getString ("edger"));
    menuItem_Unit_Edger.setToolTipText(resourcesTooltips.getString ("edger"));
    menuItem_Unit_RoughingStand.setMnemonic((resourcesMnemonics.getString
("r_stand")).charAt (0));
    menuItem_Unit_RoughingStand.setText(resourcesWindowTexts.getString
("r_stand"));
    menuItem_Unit_RoughingStand.setToolTipText(resourcesTooltips.getString
("r_stand"));
    menuItem_Unit_FinishStand.setMnemonic((resourcesMnemonics.getString
("f_stand")).charAt (0));
    menuItem_Unit_FinishStand.setText(resourcesWindowTexts.getString
("f_stand"));
    menuItem_Unit_FinishStand.setToolTipText(resourcesTooltips.getString
("f_stand"));
    menuItem_Unit_Shear.setMnemonic((resourcesMnemonics.getString
("shear")).charAt (0));
    menuItem_Unit_Shear.setText(resourcesWindowTexts.getString ("shear"));
    menuItem_Unit_Shear.setToolTipText(resourcesTooltips.getString ("shear"));
    menuItem_Unit_InterStandCooling.setMnemonic((resourcesMnemonics.getString
("interStandCooling")).charAt (0));
    menuItem_Unit_InterStandCooling.setText(resourcesWindowTexts.getString
("interStandCooling"));
    menuItem_Unit_InterStandCooling.setToolTipText(resourcesTooltips.getString
("interStandCooling"));
    menuItem_Unit_CoolingSection.setMnemonic((resourcesMnemonics.getString
("coolingSection")).charAt (0));
    menuItem_Unit_CoolingSection.setText(resourcesWindowTexts.getString
("coolingSection"));
    menuItem_Unit_CoolingSection.setToolTipText(resourcesTooltips.getString
("coolingSection"));
    menuItem_Unit_Coiler.setMnemonic((resourcesMnemonics.getString
("coiler")).charAt (0));
    menuItem_Unit_Coiler.setText(resourcesWindowTexts.getString ("coiler"));
    menuItem_Unit_Coiler.setToolTipText(resourcesTooltips.getString ("coiler"));
    menuItem_Unit_Coilbox.setMnemonic((resourcesMnemonics.getString
("coilbox")).charAt (0));
    menuItem_Unit_Coilbox.setText(resourcesWindowTexts.getString ("coilbox"));
    menuItem_Unit_Coilbox.setToolTipText(resourcesTooltips.getString
("coilbox"));
    menuItem_Unit_StripEditor.setMnemonic((resourcesMnemonics.getString
("stripEditor")).charAt (0));
    menuItem_Unit_StripEditor.setText(resourcesWindowTexts.getString
("stripEditor"));
    menuItem_Unit_StripEditor.setToolTipText(resourcesTooltips.getString
("stripEditor"));
    menuItem_Unit_IterationLoop.setMnemonic((resourcesMnemonics.getString
("iterationLoop")).charAt (0));
    menuItem_Unit_IterationLoop.setText(resourcesWindowTexts.getString
("iterationLoop"));
    menuItem_Unit_IterationLoop.setToolTipText(resourcesTooltips.getString
("iterationLoop"));
    menuItem_Unit_StripTracker.setMnemonic((resourcesMnemonics.getString
("stripTracker")).charAt (0));
    menuItem_Unit_StripTracker.setText(resourcesWindowTexts.getString
("stripTracker"));
    menuItem_Unit_StripTracker.setToolTipText(resourcesTooltips.getString
("stripTracker"));
    menuItem_Unit_ResultBox.setEnabled(false);
    menuItem_Unit_ResultBox.setText(resourcesWindowTexts.getString
("resultBox"));
    menuItem_Unit_ResultBox.setMnemonic ((resourcesMnemonics.getString
("resultBox")).charAt (0));
    menuItem_Unit_ResultBox.setToolTipText(resourcesTooltips.getString
("resultBox"));

    // add menu times
    menu_Unit.add(menuItem_Unit_Caster);
    menu_Unit.add(menuItem_Unit_Submenu_Furnace);
    menu_Unit.add(menuItem_Unit_RollerTable);
    menu_Unit.add(menuItem_Unit_Edger);
    menu_Unit.add(menuItem_Unit_RoughingStand);
    menu_Unit.add(menuItem_Unit_FinishStand);
    menu_Unit.add(menuItem_Unit_Shear);
    menu_Unit.add(menuItem_Unit_InterStandCooling);
    menu_Unit.add(menuItem_Unit_CoolingSection);
    menu_Unit.add(menuItem_Unit_Coiler);
    menu_Unit.add(menuItem_Unit_Coilbox);
    menu_Unit.addSeparator();
    menu_Unit.add(menuItem_Unit_StripEditor);
    menu_Unit.add(menuItem_Unit_IterationLoop);
    menu_Unit.add(menuItem_Unit_StripTracker);
    menu_Unit.addSeparator();
    menu_Unit.add(menuItem_Unit_ResultBox);
    
menuItem_Unit_Submenu_Furnace.add(menuItem_Unit_Submenu_Furnace_WalkingBeam);
    menuItem_Unit_Submenu_Furnace.add(menuItem_Unit_SubMenu_Furnace_Reheating);
  } // initMenuUnit



  //Start the applet
  public void start() {
  }

  //Stop the applet
  public void stop() {
  }

  //Destroy the applet
  public void destroy() {
  }

  //Get Applet information
  public String getAppletInfo() {
    return "Applet Information";
  }

  //Get parameter info
  public String[][] getParameterInfo() {
    String[][] pinfo =
      {
      {"Version", "String", "Program Version"},
      };
    return pinfo;
  }

  //Main method
  public static void main(String[] args) {
    HybrexApplet applet = new HybrexApplet();
    applet.isStandalone = true;
    JFrame frame = new JFrame();
    //EXIT_ON_CLOSE == 3
    frame.setDefaultCloseOperation(3);
    frame.setTitle("Applet Frame");
    frame.getContentPane().add(applet, BorderLayout.CENTER);
    applet.init();
    applet.start();
    frame.setSize(400,320);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    frame.setLocation((d.width - frame.getSize().width) / 2, (d.height -
frame.getSize().height) / 2);
    frame.setVisible(true);
  }

  //static initializer for setting look & feel
  static {
    try {
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
      
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
    }
    catch(Exception e) {
    }
  }

  void menuItem_Unit_Caster_actionPerformed(ActionEvent e) {
    System.out.println ("CASTER!!!");
  }


}

class HybrexApplet_menuItem_Unit_Caster_actionAdapter implements
java.awt.event.ActionListener {
  HybrexApplet adaptee;

  HybrexApplet_menuItem_Unit_Caster_actionAdapter(HybrexApplet adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.menuItem_Unit_Caster_actionPerformed(e);
  }
}
(Review ID: 108500)
======================================================================


Name: ks88420			Date: 08/24/2000


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)

This happens when you use a floatable JToolBar in Windows (with Windows L&F).
To view the bug, follow the steps: Assign a tooltip to the any of the buttons
on the toolbar. Make the tip "longer" than the toolbar's width. Drag the
toolbar outside the window (to make it floating), and position the toolbar near
the (left) edge of the desktop. Put the mousepointer vertically somewhere in
the middle of the button, and wait for the tooltip to appear. The entire
toolbar starts shaking wildly, as the tooltip text is not fit inside the
desktop or toolbar! Kinda amusing but not good in a professional product.

Excetute this code and you'll see what I mean!


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Frame1 extends JFrame {
  JPanel contentPane;
  JToolBar jToolBar1 = new JToolBar();
  JButton jButton1 = new JButton();
  JButton jButton2 = new JButton();
  JTextArea jTextArea1 = new JTextArea();

  //Construct the frame
  public Frame1() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }

  public static void main(String argv[]) throws Exception{
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    Frame1 frame = new Frame1();
    frame.validate();
    frame.setVisible(true);
  }

  //Component initialization
  private void jbInit() throws Exception  {
    contentPane = (JPanel) this.getContentPane();
    contentPane.setLayout(new BorderLayout());
    this.setSize(new Dimension(450, 230));
    jButton1.setToolTipText("This is a long tooltip-text that makes the entire
window very shaky" +
    ".......................................... Try to hold your mousepointer
over this button " +
    "for a while.");
    jButton1.setText("Error in tooltip");
    jButton2.setToolTipText("This one works");
    jButton2.setText("Correct tooltip");
    jTextArea1.setWrapStyleWord(true);
    jTextArea1.setLineWrap(true);
    jTextArea1.setText("Drag the toolbar outside this window (make it
floating), and position " +
    "it near an edge of your desktop. Then try to view the left button\'s " +
    "tooltip by holding your mousepointer over it some seconds. When the " +
    "tooltip tries to appear, it makes the entire toolbar shaky (as it
doesn't " +
    "fit inside the desktop). The toolbar must be near the edge of the
desktop, " +
    "and your mousepointer must be located vertically in the middle of the
button " +
    "in order for the bug appear.");
    jTextArea1.setEditable(false);
    contentPane.add(jToolBar1, BorderLayout.NORTH);
    jToolBar1.add(jButton1, null);
    jToolBar1.add(jButton2, null);
    contentPane.add(jTextArea1, BorderLayout.CENTER);
  }

  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }
}
(Review ID: 108190) 
======================================================================

Name: ks88420			Date: 08/24/2000


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 have created a GUI which holds some menues. The text for the menues, Mnemonics as well as tooltip texts are extracted from property-files for
internationalization reasons. Nevertheless the same error will appear if you use simple strings. Try to run the program:

java de.siemens.atd.mp.jhybrex.visual.HybrexApplet

For this you have to create all the folders de/siemens/atd/mp/jhybrex/visual and place the following program HybrexApplet.java there. After compiling you have to
put the resource-bundles to classes/de/siemens/atd/mp/jhybrex/visual . I know this looks quite complicated. Therfore I have created a jar-File holding
the necessary files in the proper structure; Please email me and I'll send it to you!
you can run this by simply typing "java -cp jhybrex_bug.jar de.siemens.atd.mp.jhybrex.visual.HybrexApplet"

Go to menu Unit. The tooltips all work fine, despite the last one ("Ergebnisbox" ) and the last one in the submenu ("Ofen->Wiedererw?rmungsofen"). There the
tooltips sometimes appear, but mostly you just get some flickering effect under the cursor.
You even get an error after the flickering on the submenu, if you click some item in the Unit-menu and go again into the menu Unit! Despite
"Unit->Gie?anlange" listeners are not implemented yet! So this should have no effect!). I get the following error message:

Exception occurred during event dispatching:
java.lang.NullPointerException: null pData
	at sun.awt.windows.WInputMethod.handleNativeIMEEvent(Native Method)
	at sun.awt.windows.WInputMethod.dispatchEvent(WInputMethod.java:275)
	at sun.awt.im.InputContext.dispatchEvent(InputContext.java:202)
	at
sun.awt.im.InputMethodContext.dispatchEvent(InputMethodContext.java:177)
	at java.awt.Component.dispatchEventImpl(Component.java:2529)
	at java.awt.Container.dispatchEventImpl(Container.java:1213)
	at java.awt.Component.dispatchEvent(Component.java:2499)
	at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2451)
	at
java.awt.LightweightDispatcher.trackMouseEnterExit(Container.java:2318)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2189)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2125)
	at java.awt.Container.dispatchEventImpl(Container.java:1200)
	at java.awt.Window.dispatchEventImpl(Window.java:912)
	at java.awt.Component.dispatchEvent(Component.java:2499)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:319)
	at
java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:103)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:84)


///// SOURCE CODE:


Here is the code of HybrexApplet:


/**
 * ?berschrift: JHybrex<p>
 * Beschreibung: Internet client of Hybrex, a Siemens mill simulating
software<p>
 * Copyright: Copyright (c) Stefan Roth<p>
 * Organisation: TU Berlin, Siemens AG<p>
 * @author Stefan Roth
 * @version 1.0
 */
package de.siemens.atd.mp.jhybrex.visual;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;

import java.util.ResourceBundle;
import java.util.Locale;


public class HybrexApplet extends JApplet {
  boolean isStandalone = false;
  String APPAR_version;

  /** The internationalization-resource-bundle for all windows-specific texts */
  ResourceBundle resourcesWindowTexts;
  ResourceBundle resourcesTooltips;
  ResourceBundle resourcesDialog;
  ResourceBundle resourcesMnemonics;



  // attributes for the menu
  JMenuBar mainMenuBar = new JMenuBar();
  JMenu menu_File = new JMenu();
  JMenuItem menuItem_File_New = new JMenuItem();
  JMenuItem menuItem_File_Open = new JMenuItem();
  JMenuItem menuItem_File_Close = new JMenuItem();
  JMenuItem menuItem_File_Save = new JMenuItem();
  JMenuItem menuItem_File_SaveAs = new JMenuItem();
  JMenuItem menuItem_File_Print = new JMenuItem();
  JMenuItem menuItem_File_PrintPreview = new JMenuItem();
  JMenuItem menuItem_File_Exit = new JMenuItem();
  JMenu menu_Edit = new JMenu();
  JMenuItem menuItem_Edit_Undo = new JMenuItem();
  JMenuItem menuItem_Edit_Cut = new JMenuItem();
  JMenuItem menuItem_Edit_Copy = new JMenuItem();
  JMenuItem menuItem_Edit_Paste = new JMenuItem();
  JMenuItem menuItem_Edit_InsertNewObject = new JMenuItem();
  JMenuItem menuItem_Edit_SelectAllUnits = new JMenuItem();
  JMenuItem menuItem_Edit_DeleteSelection = new JMenuItem();
  JMenuItem menuItem_Edit_DeleteConnection = new JMenuItem();
  JMenu menu_View = new JMenu();
  JCheckBoxMenuItem menuItem_View_Toolbar = new JCheckBoxMenuItem();
  JCheckBoxMenuItem menuItem_View_Statusbar = new JCheckBoxMenuItem();
  JMenuItem menuItem_View_Quickview = new JMenuItem();
  JMenuItem menuItem_View_ZoomToFit = new JMenuItem();
  JMenu menu_Unit = new JMenu();
  JMenuItem menuItem_Unit_Caster = new JMenuItem();
  JMenu menuItem_Unit_Submenu_Furnace = new JMenu();
  JMenuItem menuItem_Unit_Submenu_Furnace_WalkingBeam = new JMenuItem();
  JMenuItem menuItem_Unit_SubMenu_Furnace_Reheating = new JMenuItem();
  JMenuItem menuItem_Unit_RollerTable = new JMenuItem();
  JMenuItem menuItem_Unit_Edger = new JMenuItem();
  JMenuItem menuItem_Unit_RoughingStand = new JMenuItem();
  JMenuItem menuItem_Unit_FinishStand = new JMenuItem();
  JMenuItem menuItem_Unit_Shear = new JMenuItem();
  JMenuItem menuItem_Unit_InterStandCooling = new JMenuItem();
  JMenuItem menuItem_Unit_CoolingSection = new JMenuItem();
  JMenuItem menuItem_Unit_Coiler = new JMenuItem();
  JMenuItem menuItem_Unit_Coilbox = new JMenuItem();
  JMenuItem menuItem_Unit_StripEditor = new JMenuItem();
  JMenuItem menuItem_Unit_IterationLoop = new JMenuItem();
  JMenuItem menuItem_Unit_StripTracker = new JMenuItem();
  JScrollPane scrollableTopLevelContainer = new JScrollPane();
  JPanel mainPanel = new JPanel();
  JButton jButton1 = new JButton();
  JMenuItem menuItem_Unit_ResultBox = new JMenuItem();

  //Get a parameter value
  public String getParameter(String key, String def) {
    return isStandalone ? System.getProperty(key, def) :
      (getParameter(key) != null ? getParameter(key) : def);
  }

  //Construct the applet
  public HybrexApplet() {
  }

  //Initialize the applet
  public void init() {
    try {
      APPAR_version = this.getParameter("Version", "0.1");
    }
    catch(Exception e) {
      e.printStackTrace();
    }
    try {
      initFrame ();
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }

  /** This internal method is used to do initialization stuff apart from the
   *  JBuilders GUI Wizard. For example loading the property-files for
   *  internationalization purposes is done here.
   */
  private void initFrame () {

    // get current Locale
    // TODO: Change this stuff; the Locale must be provided by the bean user!
    //Locale currentLocale = Locale.getDefault ();
    //Locale currentLocale = new Locale ("en", "US");
    Locale currentLocale = new Locale ("de", "DE");


    // get resource-bundle for windows texts
    resourcesWindowTexts = ResourceBundle.getBundle
("de.siemens.atd.mp.jhybrex.visual.WindowTexts", currentLocale);
    // get resource-bundle for tooltip texts
    resourcesTooltips    = ResourceBundle.getBundle
("de.siemens.atd.mp.jhybrex.visual.tooltips", currentLocale);
    // get resource-bundle for dialogs
    //resourcesDialog     = ResourceBundle.getBundle
("de.siemens.atd.mp.jhybrex.visual.dialogs", currentLocale);
    // get resource-bundle for mnemonics
    resourcesMnemonics   = ResourceBundle.getBundle
("de.siemens.atd.mp.jhybrex.visual.Mnemonics", currentLocale);

  } // initFrame


  //Component initialization
  private void jbInit() throws Exception {
    this.setSize(new Dimension(400,300));

    // initialize all menues
    initMenuFile ();
    initMenuEdit ();
    initMenuView ();
    initMenuUnit ();

    // prepare main panel for absolute positioning...
    mainPanel.setLayout(null);

    jButton1.setText("jButton1");
    mainMenuBar.add(menu_File);
    mainMenuBar.add(menu_Edit);
    mainMenuBar.add(menu_View);
    mainMenuBar.add(menu_Unit);

    this.getContentPane().add(mainMenuBar, BorderLayout.NORTH);
    this.getContentPane().add(scrollableTopLevelContainer, BorderLayout.SOUTH);
    scrollableTopLevelContainer.getViewport().add(mainPanel, null);
  } // jbInit


  private void initMenuFile () {
    // prepare menu items
    menu_File.setMnemonic((resourcesMnemonics.getString("mnFile")).charAt (0));
    menu_File.setText(resourcesWindowTexts.getString ("file"));
    
menuItem_File_New.setMnemonic((resourcesMnemonics.getString("mnNew")).charAt(0))
;
    menuItem_File_New.setText(resourcesWindowTexts.getString ("new"));
    menuItem_File_New.setToolTipText(resourcesTooltips.getString ("new"));
    
menuItem_File_Open.setMnemonic((resourcesMnemonics.getString("mnOpen")).charAt
(0));
    menuItem_File_Open.setText(resourcesWindowTexts.getString ("open"));
    menuItem_File_Open.setToolTipText(resourcesTooltips.getString ("open"));
    menuItem_File_Close.setToolTipText(resourcesTooltips.getString ("close"));
    
menuItem_File_Close.setMnemonic((resourcesMnemonics.getString("mnClose")).charAt
(0));
    menuItem_File_Close.setText(resourcesWindowTexts.getString ("close"));
    menuItem_File_Save.setToolTipText(resourcesTooltips.getString ("save"));
    
menuItem_File_Save.setMnemonic((resourcesMnemonics.getString("mnSave")).charAt
(0));
    menuItem_File_Save.setText(resourcesWindowTexts.getString ("save"));
    menuItem_File_SaveAs.setToolTipText(resourcesTooltips.getString ("saveAs"));
    
menuItem_File_SaveAs.setMnemonic((resourcesMnemonics.getString("mnSaveAs")).char
At (0));
    menuItem_File_SaveAs.setText(resourcesWindowTexts.getString ("saveAs"));
    menuItem_File_Print.setToolTipText(resourcesTooltips.getString ("print"));
    
menuItem_File_Print.setMnemonic((resourcesMnemonics.getString("mnPrint")).charAt
(0));
    menuItem_File_Print.setText(resourcesWindowTexts.getString ("print"));
    menuItem_File_PrintPreview.setToolTipText(resourcesTooltips.getString
("printPrev"));
    
menuItem_File_PrintPreview.setMnemonic((resourcesMnemonics.getString("mnPrintPre
v")).charAt (0));
    menuItem_File_PrintPreview.setText(resourcesWindowTexts.getString
("printPrev"));
    menuItem_File_Exit.setToolTipText(resourcesTooltips.getString ("exit"));
    
menuItem_File_Exit.setMnemonic((resourcesMnemonics.getString("mnExit")).charAt
(0));
    menuItem_File_Exit.setText(resourcesWindowTexts.getString ("exit"));

    // add menu items
    menu_File.add(menuItem_File_New);
    menu_File.add(menuItem_File_Open);
    menu_File.add(menuItem_File_Close);
    menu_File.add(menuItem_File_Save);
    menu_File.add(menuItem_File_SaveAs);
    menu_File.addSeparator();
    menu_File.add(menuItem_File_Print);
    menu_File.add(menuItem_File_PrintPreview);
    menu_File.addSeparator();
    menu_File.add(menuItem_File_Exit);
  } // initMenuFile


  private void initMenuEdit () {
    // prepare menu items
    menu_Edit.setMnemonic((resourcesMnemonics.getString("mnEdit")).charAt (0));
    menu_Edit.setText(resourcesWindowTexts.getString ("edit"));
    menuItem_Edit_Undo.setEnabled(false);
    menuItem_Edit_Undo.setToolTipText(resourcesTooltips.getString ("undo"));
    
menuItem_Edit_Undo.setMnemonic((resourcesMnemonics.getString("mnUndo")).charAt
(0));
    menuItem_Edit_Undo.setText(resourcesWindowTexts.getString ("undo"));
    menuItem_Edit_Cut.setEnabled(false);
    menuItem_Edit_Cut.setToolTipText(resourcesTooltips.getString ("cut"));
    menuItem_Edit_Cut.setMnemonic((resourcesMnemonics.getString
("mnCut")).charAt (0));
    menuItem_Edit_Cut.setText(resourcesWindowTexts.getS

Comments
WORK AROUND Name: ks88420 Date: 08/24/2000 Do not use long tooltips ======================================================================
11-06-2004

EVALUATION This is no longer reproducable under the latest merlin builds. I believe this was fixed as part of 4303635, which I am closing this as a duplicate of. scott.violet@eng 2000-11-27
27-11-2000