当前位置: 代码迷 >> Java相关 >> [求助]会鼠标右键弹出菜单的人看下
  详细解决方案

[求助]会鼠标右键弹出菜单的人看下

热度:164   发布时间:2007-11-15 01:41:19.0
[求助]会鼠标右键弹出菜单的人看下

会的朋友帮我下,小弟我做了个窗口里鼠标右键可以弹出菜单的简单程序,但是不知道怎么能弹出右键菜单后实现选择后的功能,我用了下public void actionPerformed(ActionEvent a)这个,但是还是不成,请帮帮我
搜索更多相关的解决方案: 鼠标  菜单  void  public  

----------------解决方案--------------------------------------------------------

我修改了一下,现在可以用的。你看一下吧

  import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;

class app extends JFrame implements ActionListener
{
JMenuBar bar=new JMenuBar();
final JPopupMenu menu=new JPopupMenu();
JMenu jm1=new JMenu("文件");
JMenu jm2=new JMenu("编辑");
JMenuItem item1=new JMenuItem("打开");
JMenuItem item2=new JMenuItem("关闭");
JMenuItem item3=new JMenuItem("复制");
JMenuItem item4=new JMenuItem("粘贴");
JMenuItem item5=new JMenuItem("刷新");
JMenuItem item6=new JMenuItem("属性");
JMenuItem item7=new JMenuItem("管理");
app()
{
this.setJMenuBar(bar);
bar.add(jm1);
bar.add(jm2);
jm1.add(item1);
jm1.add(item2);
jm2.add(item3);
jm2.add(item4);
menu.add(item5);
menu.add(item6);
menu.add(item7);

item5.addActionListener(this);
item6.addActionListener(this);
item7.addActionListener(this);    //这样增加一个监听器

this.setSize(300,300);
this.setVisible(true);

this.addMouseListener(new MouseAdapter ()
{
public void mouseReleased(MouseEvent e)
{
//System.out.println("www.it.com.cn");
if(e.isPopupTrigger())
{
menu.setLocation(e.getX(),e.getY());
menu.show(e.getComponent(),e.getX(),e.getY());
System.out.println("www.pconline.com.cn");
}
}
}
);
}
public void actionPerformed(ActionEvent e)
{
System.out.println("www.it.com.cn"); //这样可以触发到事件啊!
}

public static void main(String arc[])
{
JFrame.setDefaultLookAndFeelDecorated(true);
new app();
}
}


----------------解决方案--------------------------------------------------------
如果JMenu里面有和JPopupMenu相同的项目
那么JPopupMenu会覆盖JMenu里面的项目
就是JMenu里面的Item无法正常显示
请问要怎么做
才可以使他们都显示出来

----------------解决方案--------------------------------------------------------

我试了一下,都没有不正常显示啊,能给出全部代码吗?
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;

class app extends JFrame implements ActionListener
{
JMenuBar bar=new JMenuBar();
final JPopupMenu menu=new JPopupMenu();
JMenu jm1=new JMenu("文件");
JMenu jm2=new JMenu("编辑");
JMenuItem item1=new JMenuItem("打开"); //这就是相同的项目
JMenuItem item2=new JMenuItem("关闭");
JMenuItem item3=new JMenuItem("复制");
JMenuItem item4=new JMenuItem("粘贴");
JMenuItem item8=new JMenuItem("打开"); //这就是相同的项目
JMenuItem item5=new JMenuItem("刷新");
JMenuItem item6=new JMenuItem("属性");
JMenuItem item7=new JMenuItem("管理");
app()
{
this.setJMenuBar(bar);
bar.add(jm1);
bar.add(jm2);
jm1.add(item1);
jm1.add(item2);
jm2.add(item3);
jm2.add(item4);
menu.add(item5);
menu.add(item6);
menu.add(item7);
menu.add(item8);

item5.addActionListener(this);
item6.addActionListener(this);
item7.addActionListener(this);

this.setSize(300,300);
this.setVisible(true);

this.addMouseListener(new MouseAdapter ()
{
public void mouseReleased(MouseEvent e)
{
//System.out.println("www.it.com.cn");
if(e.isPopupTrigger())
{
menu.setLocation(e.getX(),e.getY());
menu.show(e.getComponent(),e.getX(),e.getY());
System.out.println("www.pconline.com.cn");
}
}
}
);
}
public void actionPerformed(ActionEvent e)
{
System.out.println("www.it.com.cn"); //这样可以触发到事件啊!
}

public static void main(String arc[])
{
JFrame.setDefaultLookAndFeelDecorated(true);
new app();
}
}


----------------解决方案--------------------------------------------------------
  相关解决方案