JPopupMenu 代码示例

来源:互联网 发布:马士兵java教学视频 编辑:程序博客网 时间:2024/05/20 20:17

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);     
   }
}

0 0
原创粉丝点击