下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

java的程序例子里能产生什么样的行为

作者:课课家教育     来源: http://www.kokojia.com点击数:648发布时间: 2016-02-22 13:48:27

标签: java的程序java程序员java开发

大神带你学编程,欢迎选课

  JPopupMenu的执行看起来有一些别扭:我们必须调用enableEvents()方法并选择鼠标事件代替利用事件接收器。它可能增加一个鼠标接收器但MouseEvent从isPopupTrigger()处不会返回真值——它不知道将激活一个弹出菜单。另外,当我们尝试接收器方法时,它的行为令人不可思议,这或许是鼠标单击活动引起的。在下面的程序例子里一些事件产生了这种弹出行为:

java的程序例子里能产生什么样的行为_java的程_java程序员_课课家

  //: Popup.java

  // Creating popup menus with Swing

  package c13.swing;

  import java.awt.*;

  import java.awt.event.*;

  import javax.swing.*;

  public class Popup extends JPanel {

  JPopupMenu popup = new JPopupMenu();

  JTextField t = new JTextField(10);

  public Popup() {

  add(t);

  ActionListener al = new ActionListener() {

  public void actionPerformed(ActionEvent e){

  t.setText(

  ((JMenuItem)e.getSource()).getText());

  }

  };

  JMenuItem m = new JMenuItem("Hither");

  m.addActionListener(al);

  popup.add(m);

  m = new JMenuItem("Yon");

  m.addActionListener(al);

  popup.add(m);

  m = new JMenuItem("Afar");

  m.addActionListener(al);

  popup.add(m);

  popup.addSeparator();

  m = new JMenuItem("Stay Here");

  m.addActionListener(al);

  popup.add(m);

  PopupListener pl = new PopupListener();

  addMouseListener(pl);

  t.addMouseListener(pl);

  }

  class PopupListener extends MouseAdapter {

  public void mousePressed(MouseEvent e) {

  maybeShowPopup(e);

  }

  public void mouseReleased(MouseEvent e) {

  maybeShowPopup(e);

  }

  private void maybeShowPopup(MouseEvent e) {

  if(e.isPopupTrigger()) {

  popup.show(

  e.getComponent(), e.getX(), e.getY());

  }

  }

  }

  public static void main(String args[]) {

  Show.inFrame(new Popup(),200,150);

  }

  } ///:~

  相同的ActionListener被加入每个JMenuItem中,使其能从菜单标签中取出文字,并将文字插入JTextField。

赞(21)
踩(2)
分享到:
华为认证网络工程师 HCIE直播课视频教程