
import javax.swing.UIManager;
import java.awt.*;
import java.awt.event.*;
import java.lang.reflect.InvocationTargetException;
import javax.swing.*;

public class ToolTipCrash extends JFrame {



    public ToolTipCrash() throws InterruptedException, InvocationTargetException {

        SwingUtilities.invokeAndWait(()->{
            JFrame frame1 = new JFrame("");
            JMenuBar jMenuBar1 = new JMenuBar();
            JMenu jMenuFile = new JMenu();
            JMenuItem jMenuFileExit = new JMenuItem();
            JMenu jMenuHelp = new JMenu();
            JMenuItem jMenuHelpAbout = new JMenuItem();
            Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
            Dimension frameSize = frame1.getSize();

            if (frameSize.height > screenSize.height) {
                frameSize.height = screenSize.height;
            }
            if (frameSize.width > screenSize.width) {
                frameSize.width = screenSize.width;
            }

            frame1.setSize(new Dimension(400, 87));

            jMenuFile.setText("File");
            jMenuFileExit.setText("Exit");

            // Add a tooltip to the exit menu item.
            jMenuFileExit.setToolTipText("Press exit with tooltip displayed to cause crash.");

            jMenuFileExit.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    jMenuFileExit_actionPerformed(e);
                }
            });

            jMenuHelp.setText("Help");
            jMenuHelpAbout.setText("About");
            jMenuHelpAbout.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    jMenuHelpAbout_actionPerformed(e);
                }
            });
            jMenuFile.add(new JMenuItem("Dummy"));
            jMenuFile.add(new JMenuItem("Dummy"));
            jMenuFile.add(new JMenuItem("Dummy"));
            jMenuFile.add(new JMenuItem("Dummy"));
            jMenuFile.add(new JMenuItem("Dummy"));
            jMenuFile.add(new JMenuItem("Dummy"));
            jMenuFile.add(new JMenuItem("Dummy"));
            jMenuFile.add(jMenuFileExit);
            jMenuHelp.add(jMenuHelpAbout);
            jMenuBar1.add(jMenuFile);
            jMenuBar1.add(jMenuHelp);

            frame1.setJMenuBar(jMenuBar1);
            frame1.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
            frame1.setVisible(true);
            frame1.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent we) {
                    System.exit(0);
                }
            });
        });


        //  createframe();

    }

    //File | Exit action performed
    public void jMenuFileExit_actionPerformed(ActionEvent e) {

    }

    //Help | About action performed
    public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
    }

    class ButtonListener implements ActionListener {
        public void actionPerformed(ActionEvent ae) {
            JButton button = (JButton) ae.getSource();
            if (button.getActionCommand() == "Pass") {
                System.out.println("User Evaluated Test as Passed");
                System.exit(0);
            } else {
                System.out.println("User Evaluated Test as Failed");
                System.exit(1);
            }

        }
    }  // End of ButtonListener class

    public static void main(String[] args) throws InterruptedException, InvocationTargetException {
/*
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (Exception e) {
            e.printStackTrace();
        }
*/
        new ToolTipCrash();
    }


}
