PopupDemo.java


PopupDemo.java

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



class PopupDemo extends JPanel {
 private JPopupMenu m_popup = new JPopupMenu();
 private JMenuItem m_rotateItem;
 String msg = null;

public PopupDemo() {
       JMenuItem m_newItem = new JMenuItem("New");
            m_newItem.setAccelerator(KeyStroke.getKeyStroke("control N"));
       JMenuItem m_editItem = new JMenuItem("Edit");
            m_editItem.setEnabled(msg!=null);
            m_editItem.setAccelerator(KeyStroke.getKeyStroke("control E"));
       m_rotateItem = new JMenuItem("Rotate");
           // m_rotateItem.setEnabled(false);
            m_rotateItem.setAccelerator(KeyStroke.getKeyStroke("control R"));
	JMenuItem m_deleteItem = new JMenuItem("Delete");
            //m_deleteItem.setEnabled(false);
            m_deleteItem.setAccelerator(KeyStroke.getKeyStroke("control D"));

	m_popup.add(m_newItem);
	m_popup.add(m_editItem);
	m_popup.add(m_rotateItem);
	m_popup.add(m_deleteItem);

	setComponentPopupMenu(m_popup);

	m_newItem.addActionListener(actionEvent -> setmsg("New Object"));
	m_rotateItem.addActionListener(actionEvent -> setmsg("Rotate"));
	m_deleteItem.addActionListener(actionEvent -> setmsg(null));

}

   public void setmsg(String s) {
	msg = s;
	m_rotateItem.setEnabled(msg!=null);
	repaint();
   }

   public void paintComponent(Graphics g)
    {
	super.paintComponent( g );

	Font f = new Font("Serif", Font.BOLD, 18);
	g.setFont(f);
	if (msg!=null) g.drawString(msg,40,80);

    }

	public static void main(String[] args)
	{
		
		EventQueue.invokeLater(new Runnable() 
		{
			public void run()
			{

				PopupDemo panel = new PopupDemo();
				JFrame frame = new JFrame("PopupDemo");
				frame.add(panel);
				frame.setSize(200,200);
				frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				frame.setVisible(true);
				//frame.pack();
					
			}	
		});
	
         }
}


Maintained by John Loomis, updated Thu Apr 02 19:22:04 2020