永发信息网

Java程序求DeBug

答案:3  悬赏:0  手机版
解决时间 2021-01-22 12:43
Java程序求DeBug
最佳答案
拿去运行下

package test;
import javax.swing.*;
import java.awt.event.*;
public class JPMenu extends JFrame {
JMenuItem reMenu, copyMenu, pasteMenu, cutMenu, delMenu, allMenu;
JPopupMenu jpm;
public JPMenu() {
jpm = new JPopupMenu();
reMenu = new JMenuItem("撤销");
copyMenu = new JMenuItem("复制");
pasteMenu = new JMenuItem("粘贴");
cutMenu = new JMenuItem("剪切");
delMenu = new JMenuItem("删除");
allMenu = new JMenuItem("全选");
jpm.add(reMenu);
jpm.addSeparator();
jpm.add(copyMenu);
jpm.add(pasteMenu);
jpm.add(cutMenu);
jpm.add(delMenu);
jpm.add(allMenu);
MouseListener pl = new PopupListener(jpm);
this.addMouseListener(pl);
this.setTitle("JPopupMenuDemo");
this.setBounds(100, 100, 300, 200);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]) {
new JPMenu();
}
class PopupListener extends MouseAdapter {
JPopupMenu pm;
PopupListener(JPopupMenu pm1) {
this.pm = pm1;
}
public void mousePressed(MouseEvent e) {
showPopupMenu(e);
}
public void mouseRealeased(MouseEvent e) {
showPopupMenu(e);
}
private void showPopupMenu(MouseEvent e) {
//if (e.isPopupTrigger()) { 判断是否要求弹出一个菜单,在这里是不符合这个判断的
pm.show(e.getComponent(), e.getX(), e.getY());
//}
}
}
}追问不是判断MouseEvent的么?追答直接用getButton() 这个函数就行,如果它的返回值是MouseEvent.BUTTON3,那就是右键;如果它的返回值是MouseEvent.BUTTON2,那就是中键;如果它的返回值是MouseEvent.BUTTON1,那就是左键。

class PopupListener extends MouseAdapter {
JPopupMenu pm;
PopupListener(JPopupMenu pm1) {
this.pm = pm1;
}
public void mousePressed(MouseEvent e) {
if(e.getButton() == 3){
showPopupMenu(e);
}
}
public void mouseRealeased(MouseEvent e) {
showPopupMenu(e);
}
private void showPopupMenu(MouseEvent e) {
//if (e.isPopupTrigger()) { 判断是否要求弹出一个菜单,在这里是不符合这个判断的
pm.show(e.getComponent(), e.getX(), e.getY());
//}
}
}

这样才是真正的右键出菜单
全部回答
啊啊
private void showPopupMenu(MouseEvent e){
if(e.isPopupTrigger()){
pm.show(e.getComponent(),e.getX(),e.getY());
}
}
把这个if判断去掉追问不是判断MouseEvent的么?追答你只定义了鼠标事件,不需要判断
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
1十111二121打一成语
嘉陵白菜越野摩托车的生产历史及优缺点。
小兔子在菜园里种白菜。怎么加上(雪白的)
银行如何从远期外汇交易中盈利?
怎么区分鸽子的公和母
竖式计算4.692÷2.3=
eve欧服的客户端可以用国服的文件替换汉化吗
VST文件格式是什么?VST文件如何打开?VST文
Vivo手机录的两分多钟的视频,为什么在内涵段
窑沟村地址在什么地方,我要处理点事!
惠州买房你们都去哪买的?
已知晶体管I的三个管脚的电位分别为3.8, 3.2
小红有4张卡片分别标有1.4.6.5利用这四张卡片
古诗四贴完整版的电子文档有人能给我一个吗
考研数学三辅导资料
推荐资讯
惠州总站叫什么火车站
怎样改掉“刚愎自用”的毛病?
女生说“你真的喜欢我吗”,我说“真的很喜欢
西瓜影音下载的电影在别的播放器上看没声音
手机屏上面的字成反里了是怎么回事
漆黑的魅影4.5我有一个同学说有一种精灵球可
润吉布店地址在什么地方,我要处理点事!
初见美甲美睫地址在什么地方,想过去办事,
手自一体低档高速的危害
为什么说质能方程严格来说并不算一个物理公式
单选题西班牙王室和葡萄牙王室积极支持远航探
八闽娱乐城地址在哪,我要去那里办事,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?