import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
class JPopupMenuFrame extends JFrame {
private JRadioButtonMenuItem items[];
private Color colorValues[] = {Color.blue,
Color.yellow, Color.red};
private JPopupMenu pop;
public JPopupMenuFrame() {
super("JPopupMenu Demo");
pop =new JPopupMenu();
ItemHandler handler = new ItemHandler();
String colors[] = {"Blue", "Yellow", "Red"};
ButtonGroup colorGroup=new ButtonGroup();
items = new JRadioButtonMenuItem[3];
for(int i = 0; i < items.length; i++){
items[i] = new JRadioButtonMenuItem(colors[i]);
pop.add(items[i]);
colorGroup.add(items[i]);
items[i].addActionListener(handler);
}
getContentPane().setBackground(Color.white);
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
checkForTriggerEvent(e);
}
public void mouseReleased(MouseEvent e) {
checkForTriggerEvent(e);
}
private void checkForTriggerEvent(MouseEvent e) {
if(e.isPopupTrigger())
pop.show(e.getComponent(),
e.getX(), e.getY());
}
});
setSize(300, 200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
private class ItemHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
for(int i = 0; i < items.length; i++) {
if(e.getSource() == items[i]){
getContentPane().setBackground(
colorValues[i]);
repaint();
return;
}
}
}
}
}
class JPopupMenuTest {
public static void main(String args[]) {
JPopupMenuFrame app = new JPopupMenuFrame();
app.setVisible(true);
}
}