亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

鼠標右鍵的使用和啟動彈出式菜單

2019-11-18 13:24:55
字體:
來源:轉載
供稿:網友

  本文將通過實例介紹如何用鼠標右鍵啟動彈出式菜單,以及如何執行菜單的
  指令。
  
  大家對彈出式菜單(Popup Menu)的使用相信都非常熟悉了。
  我們將通過如下的例子解釋如何在java中使用右鍵和彈出式菜單:主程序是一個Java application,
  叫UseRightButton,它上面是一個JPanel,在此JPanel上有一個JLabel,用以顯示彈出式菜單
  中指令執行的結果。我們要求當用鼠標右鍵點擊JLabel或者JPanel上時彈出一個菜單,菜單
  中有"Say Hello","Say Hello again","Say Byebye"三個選項。選擇其中的任何一個指令,將在
  JLabel中顯示對應的String.
  
  在本例中有兩個Class。一個是UseRightButton (Java應用程序),另一個是MyPopupMenu
  (彈出式窗口)。UseRightButton的源程序如下:
  
  
  
  
  
  import javax.swing.*;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.*;public class UseRightButton extends JFrame implements MouseListener{ JPanel panel; JLabel display; public UseRightButton() { setTitle("Use right button and popup menu"); setSize(400,300); panel = new JPanel(); display = new JLabel(" "); display.setOpaque(true); display.setBackground(Color.yellow); panel.add(display); panel.addMouseListener(this); display.addMouseListener(this); getContentPane().setLayout(new BorderLayout()); getContentPane().add(panel, BorderLayout.CENTER); } public static void main(String[] args) { UseRightButton rb = new UseRightButton(); rb.setVisible(true); } public void mousePRessed(MouseEvent e) { if (e.getSource() == panel && e.getButton() == MouseEvent.BUTTON3) { MyPopupMenu popup = new MyPopupMenu(this); popup.show((Component)panel, e.getX(), e.getY()); } else if (e.getSource() == display && e.getButton() == MouseEvent.BUTTON3) { MyPopupMenu popup = new MyPopupMenu(this); popup.show((Component)display, e.getX(), e.getY()); } } public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseClicked(MouseEvent e){} public void mouseReleased(MouseEvent e){}}
  
  從上面的程序我們看到:
  
  
  
  
  和使用鼠標左鍵一樣,我們是用 來控制鼠標事件。我們所要做的是限制 MouseEvent 響應鼠標右鍵的點擊,不響應鼠標左鍵的點擊。這可由下面的方法來實現
  e.getButton() == MouseEvent.BUTTON3
  其中 getButton() 方法返回一個整數,
  MouseEvent.BUTTON1,
  MouseEvent.BUTTON2 或者
  MouseEvent.BUTTON3。
  MouseEvent.BUTTON1 代表左鍵,
  MouseEvent.BUTTON3 代表右鍵。假如你的鼠標有三個
  鍵的話,MouseEvent.BUTTON2 代表中間的鍵。
  
  
  JLabel (display)僅僅占據 JPanel 的一小部分(我們用黃色背景顯示它的大小和位置)。
  而我們要求當右鍵電擊JPanel,包括JLabel,都要彈出菜單,所以我們把JPanel和
  JLabel都加上MouseListener。
  
  
  
  彈出式菜單Class的源程序如下:
  
  
  import javax.swing.*;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;public class MyPopupMenu extends JPopupMenu implements ActionListener{ JMenuItem sayHello, sayHelloAgain, sayByeBye; UseRightButton useRightButton; public MyPopupMenu(UseRightButton urb) { useRightButton = urb; sayHello = new JMenuItem("Say Hello"); sayHelloAgain = new JMenuItem("Say Hello again"); sayByeBye = new JMenuItem("Say Bye Bye"); sayHello.addActionListener(this); sayHelloAgain.addActionListener(this); sayByeBye.addActionListener(this); add(sayHello); this.addSeparator(); add(sayHelloAgain); add(sayByeBye); } public void actionPerformed(ActionEvent e) { if (e.getSource() == sayHello) { System.out.println(); useRightButton.display.setText("Hello!"); } else if (e.getSource() == sayHelloAgain) { System.out.println("Hello! Hello!"); useRightButton.display.setText("Hello! Hello!"); } else if (e.getSource() == sayByeBye) { System.out.println("Bye Bye!"); useRightButton.display.setText("Bye Bye!"); } }}
  
  這個程序很簡單,是一個標準的JPopupMenu。唯一需要指出的是在
  constrUCtor中我們引入該彈出式菜單的 base 類,UseRightButton。 這是因為
  我們要返回彈出式窗口中指令執行的結果到原來的GUI界面上。很顯然我們
  不能用 useRightButton = new UseRightButton(),因為兩個class不能互相引用。
  對于一個復雜的應用程序,我們應該使用Model-View-Controller架構來作,即
  用彈出式菜單當controller,用JLabel (display)作為View, 再寫一個model類來接
  收來自彈出式菜單的String,并自動更新JLabel中的顯示。
  
  從以上的例子我們看到利用鼠標右鍵來啟動彈出式菜單是非常輕易的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91av视频在线免费观看| 国产偷亚洲偷欧美偷精品| 亚洲精品福利免费在线观看| 亚洲免费一级电影| 91网在线免费观看| 91精品久久久久久久久久久久久久| 欧美电影免费在线观看| 日韩中文理论片| 韩国v欧美v日本v亚洲| 怡红院精品视频| 久久精品欧美视频| 亚洲精品国产免费| 久久91亚洲精品中文字幕奶水| 北条麻妃在线一区二区| 久久成人亚洲精品| 国产精品永久免费视频| 九九久久国产精品| 日韩av在线免费看| 亚洲色图校园春色| 亚洲天堂av高清| 青青在线视频一区二区三区| 成人免费看吃奶视频网站| 亚洲跨种族黑人xxx| 狠狠躁夜夜躁人人爽超碰91| 精品久久久久久久久久久久久久| 91av在线播放视频| 国产精品美女网站| 成人写真福利网| 欧美黄网免费在线观看| 欧美激情aaaa| 国产精品美女网站| 欧美日韩不卡合集视频| 亚洲女人被黑人巨大进入al| 久久久久久国产免费| 亚洲视频欧洲视频| 日韩av影片在线观看| 国产成人精品最新| 亚洲高清久久网| 国产成人精品午夜| 国产精品日本精品| 日韩av在线精品| 亚洲人免费视频| 国产精品va在线播放我和闺蜜| 亚洲国产精品va在线观看黑人| 人人爽久久涩噜噜噜网站| 久久免费成人精品视频| 性夜试看影院91社区| 亚洲深夜福利网站| 久久影院在线观看| 美女国内精品自产拍在线播放| 欧美极品少妇与黑人| 日韩精品在线视频美女| 久久综合伊人77777蜜臀| 亚洲天天在线日亚洲洲精| 国产日韩欧美视频在线| 国产免费一区二区三区香蕉精| 一区二区三区 在线观看视| 伊人久久男人天堂| 亚洲国产日韩精品在线| 亚洲qvod图片区电影| 日韩在线免费av| 亚洲第一av网| 欧美激情a∨在线视频播放| 欧美黑人性生活视频| 777国产偷窥盗摄精品视频| 高清一区二区三区四区五区| 日韩福利在线播放| 日本高清不卡的在线| 久久电影一区二区| 97香蕉超级碰碰久久免费软件| 国产精品久久久久久久久影视| 亚洲天堂av高清| 操日韩av在线电影| 欧美日韩免费观看中文| 91午夜理伦私人影院| 精品伊人久久97| 欧美成人一二三| 69精品小视频| 亚洲人成伊人成综合网久久久| 国产热re99久久6国产精品| 久久99青青精品免费观看| 一本大道久久加勒比香蕉| 欧美裸身视频免费观看| 国产xxx69麻豆国语对白| 精品一区二区三区四区在线| 国产精品扒开腿做爽爽爽的视频| 亚洲一区二区三区毛片| 亚洲人成毛片在线播放| 欧美亚洲视频在线观看| 国产区精品视频| 欧美精品免费看| 国产精品第二页| 亚洲欧美日韩久久久久久| 日本成人在线视频网址| 日韩成人在线视频网站| 日韩精品免费在线视频| 国产美女91呻吟求| 国模精品系列视频| xxxxx91麻豆| 国产精品中文久久久久久久| 九色精品免费永久在线| 92国产精品久久久久首页| 国产精品久久久久福利| 亚洲精品免费在线视频| 久久福利视频网| 精品国产自在精品国产浪潮| 日韩精品在线观看一区| 亚洲欧美在线看| 国产专区精品视频| 亚洲一区二区中文| 国产手机视频精品| 亚洲天堂视频在线观看| 美女啪啪无遮挡免费久久网站| 亚洲国产精品久久久久秋霞不卡| 日韩在线观看av| 亚洲综合中文字幕在线观看| 国产精品久久久久91| 久久99热精品这里久久精品| 国产欧洲精品视频| 91丝袜美腿美女视频网站| 97精品视频在线观看| 欧美成人亚洲成人| 美女久久久久久久久久久| 国产亚洲精品91在线| 川上优av一区二区线观看| 亚洲国产中文字幕在线观看| 欧美性猛交xxxx免费看漫画| 青草青草久热精品视频在线观看| 国产日韩精品视频| 精品久久久久久久久国产字幕| 成人中文字幕+乱码+中文字幕| 成人免费视频网址| 亚洲国产欧美日韩精品| 日韩高清免费观看| 国产成人精品a视频一区www| 久久成年人视频| 国产精品久久久久秋霞鲁丝| 欧美日韩激情小视频| 懂色av一区二区三区| 中文字幕自拍vr一区二区三区| 国产欧美在线看| 精品视频在线导航| 在线亚洲男人天堂| 亚洲欧洲自拍偷拍| 欧美午夜美女看片| 亚洲视频在线免费观看| 国产精品美女久久久久av超清| 欧美一级黑人aaaaaaa做受| 成人午夜小视频| 欧美国产日韩一区二区在线观看| 亚洲一区二区三区xxx视频| 91精品视频观看| 欧美精品生活片| 欧美—级a级欧美特级ar全黄| 91视频免费在线| 亚洲一区二区中文字幕| 久久精品国产精品亚洲| 欧美性xxxx极品hd欧美风情| 91在线免费观看网站| 日韩中文字幕精品| 亚洲免费一级电影| 日韩欧美主播在线| 国产精品中文在线| 日韩av观看网址|