学习啦>学习电脑>电脑硬件知识>键盘鼠标>

在java中实现左右键菜单

迪豪分享

 爱学习的小伙伴们相信都会使用JAVA编程,但是你知道怎么用JAVA语言实现鼠标的左右键吗?下面由学习啦小编为你整理的资料,希望你们喜欢。

  在java中实现左右键菜单

  在java中使实现右键菜单十分简单,只需用到一个控件:PopupMenu.

  首先,需要声明一个PopupMenu对像。

  PopupMenu popupMenu1 = new PopupMenu();

  然后新建一些子菜单,这里我们使用建立三个菜单项

  MenuItem menuItem1 = new MenuItem();

  MenuItem menuItem2 = new MenuItem();

  MenuItem menuItem3 = new MenuItem();

  然后再出初化,并加入监听事件中:

  menuItem1.setLabel("菜单1");

  menuItem1.addActionListener(new java.awt.event.ActionListener() { //菜单1的事件监听

  public void actionPerformed(ActionEvent e) {

  menuItem1_actionPerformed(e); //菜单事件函数

  }

  });

  menuItem2.setLabel("菜单2");

  menuItem3.setLabel("菜单3");

  popupMenu1.add(menuItem1);

  popupMenu1.add(menuItem2);

  popupMenu1.add(menuItem3);

  //在this中加入popupMenu1

  add(popupMenu1);

  这时,菜单已经加进程序中了,现在我们需要做的就是在点击右键时显示。

  先在init中加入鼠标的单击事件,

  this.addMouseListener(new java.awt.event.MouseAdapter() {

  public void mousePressed(MouseEvent e) {

  this_mousePressed(e);

  }

  });

  再在this_mousePressed(e);中将菜单显示出来

  void this_mousePressed(MouseEvent e) {

  int mods=e.getModifiers();

  //鼠标右键

  if((mods&InputEvent.BUTTON3_MASK)!=0){

  //弹出菜单

  popupMenu1.show(this,e.getX(),e.getY());

  }

  }

  //菜单1事件

  void menuItem1_actionPerformed(ActionEvent e) {

  //菜单事件1

  }

  好了,讲到这里已经全部结束,是不是非常简单啊

  这里有一个继承Panel类的完整的例子

  import java.awt.*;

  import java.awt.event.*;

  import javax.swing.*;

  public class Panel1 extends JPanel {

  PopupMenu popupMenu1 = new PopupMenu();

  MenuItem menuItem1 = new MenuItem();

  MenuItem menuItem2 = new MenuItem();

  MenuItem menuItem3 = new MenuItem();

  public Panel1() {

  try {

  jbInit();

  }

  catch(Exception ex) {

  ex.printStackTrace();

  }

  }

  void jbInit() throws Exception {

  this.setLayout(null);

  menuItem1.setLabel("菜单1");

  menuItem1.addActionListener(new java.awt.event.ActionListener() {

  public void actionPerformed(ActionEvent e) {

  menuItem1_actionPerformed(e);

  }

  });

  menuItem2.setLabel("菜单2");

  menuItem3.setLabel("菜单3");

  this.addMouseListener(new java.awt.event.MouseAdapter() {

  public void mousePressed(MouseEvent e) {

  this_mousePressed(e);

  }

  });

  popupMenu1.add(menuItem1);

  popupMenu1.add(menuItem2);

  popupMenu1.add(menuItem3);

  add(popupMenu1);

  }

  void this_mousePressed(MouseEvent e) {

  int mods=e.getModifiers();

  //鼠标右键

  if((mods&InputEvent.BUTTON3_MASK)!=0){

  //弹出菜单

  popupMenu1.show(this,e.getX(),e.getY());

  }

  }

  void menuItem1_actionPerformed(ActionEvent e) {

  //菜单事件

  }

  }

    1827212