java学习——90.快捷菜单

快捷菜单也是一组菜单项或子菜单的容器,与窗口菜单不同的是,它是通过右键弹出的。

快捷菜单类为JPopupMenu,其类的声明如下:

public class JPopupMenu extends JComponent implements Accessible,MenuElement

{

public JPopupMenu()

public JMenuItem add(JMenuItem item)  //添加菜单项

public void addSeparator()//添加分隔线

public void show(Component invoker, int x, int y)

//在(x,y)位置处显示快捷菜单,invoker指定快捷菜单所依附的组件

}

因为大多数时候快捷菜单通过右键弹出的,所以其动作要判断到底是鼠标左键还是右键,即要实现对鼠标的监听。

鼠标监听的接口是:MouseListener。

示例:

在文本区中添加快捷菜单。

在文本区中点击鼠标右键,弹出快捷菜单如下图所示:

在哪个位置点击鼠标右键,即在相应位置弹出快捷菜单。

其完整代码如下:

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import javax.swing.event.*;

public class poplearn extends JFrame implements ActionListener,MouseListener{

private JTextArea text;

private JPopupMenu popmenu;

private JMenuItem item[];

public poplearn(){

super("菜单学习");

this.setLocation(200,200);

this.setSize(600, 600);

this.setVisible(true);

text=new JTextArea();

text.addMouseListener(this);//为文本区注册鼠标事件监听器

this.getContentPane().add(new JScrollPane(text));

popmenu=new JPopupMenu();//创建快捷菜单

String s[]={"复制","剪切","粘帖","删除"};//快捷菜单中菜单项的标题

item=new JMenuItem[s.length];//创建菜单项数组

for(int i=0;i<s.length;i++)

{

item[i]=new JMenuItem(s[i]);//创建菜单项

popmenu.add(item[i]);//将菜单项加入到快捷菜单

item[i].addActionListener(this);//为菜单项注册动作事件监听器

}

}

publicvoid mouseClicked(MouseEvent e){

if(e.getButton()==3)//如果单击的是鼠标右键

this.popmenu.show(text,e.getX(),e.getY());//弹出快捷菜单,位置捕捉鼠标的位置

}

public void mouseEntered(MouseEvent e){}

public void mouseExited(MouseEvent e){}

public void mousePressed(MouseEvent e){}

public void mouseReleased(MouseEvent e){}

public void actionPerformed(ActionEvent e){//菜单项的动作

if(e.getSource()==item[0])

text.setText("复制");

if(e.getSource()==item[1])

text.setText("剪切");

if(e.getSource()==item[2])

text.setText("粘贴");

if(e.getSource()==item[3])

text.setText("删除");

}

public static void main(String args[]){

new poplearn();

}

}

其运行结果为:

单击右键,并选中“复制”菜单项,在文本区中会显示文字“复制”。

选中其他菜单项,也同样显示其他文字。

(0)

相关推荐