A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

     将一个接收ActionEvent类事件的方法actionPerformed(ActionEvent e)写进监听器里,再将此监听器加入到Button类组件中,然后我发现只有鼠标抬起来时才能触发动作事件,有没有按下去就触发的方法?

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

4 个回复

倒序浏览
查阅button的api知道,按钮有个特有监听器addActionListener(动作侦听器),
如果要实现按下鼠标就触发事件的话 ,可以给按钮添加一个共性事件监听,也就是鼠标,
这样可以监听跟踪鼠标何时被按下、释放、单击、移动、拖动、何时进入一个组件、何时退出等等操作,
详细说明请参阅java.awt.event 包下的MouseAdapter类  很容易就知道了:)

下面是毕老师讲解的例子:
  1. //给按钮添加一个鼠标监听
  2.                 but.addMouseListener(new MouseAdapter()
  3.                 {
  4.                         private int  count = 0;
  5.                         public void mouseEntered(MouseEvent e) //鼠标进入
  6.                         {       
  7.                                 System.out.println("鼠标进入"+count++);
  8.                         }
  9.                         public void mouseClicked(MouseEvent e)//单击鼠标
  10.                         {
  11.                                 if (e.getClickCount()==2)
  12.                                 {
  13.                                         System.out.println("双击鼠标");
  14.                                 }
  15.                                 else
  16.                                         System.out.println("单击鼠标");
  17.                         }
  18.                 });
复制代码

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
应该有onbuttonPressed事件吧
回复 使用道具 举报
原来如此,之前学了一部分就去看API了,而Button类中并不单独包含addMouseListener()方法,它只包含了addActionListener方法,让我以为它只能加入动作监听,属于按钮的动作事件貌似只有一次完整的按下抬起。现在才知道它可以加入鼠标监听事件。。。只是方法在Component中写的,没去看。我把代码补充上啦,谢谢你们:
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. class  ButtonAdapter extends MouseAdapter{
  4.         public void mousePressed(MouseEvent e){
  5.                 System.out.println("鼠标按下去啦");
  6.         }
  7.         public void mouseReleased(MouseEvent e){
  8.                 System.out.println("鼠标抬起来啦");
  9.         }
  10.         public void mouseClicked(MouseEvent e){
  11.                 System.out.println("鼠标按下去又抬起来啦");
  12.         }
  13. }
  14. public class Graph3 {
  15.         public static void main(String[] args) {
  16.                 Frame f=new Frame("lwy");
  17.                 Button but=new Button("按我");
  18.                 but.addMouseListener(new ButtonAdapter());
  19.                 f.add(but);
  20.                 f.add(new Label("我是一个标签"));
  21.                 f.setBounds(100, 100, 500, 400);
  22.                 f.setLayout(new FlowLayout());
  23.                 f.setVisible(true);       
  24.         }
  25. }
复制代码
回复 使用道具 举报
本帖最后由 向阳泪无痕 于 2014-3-30 08:27 编辑

ActionEvent 就是处理点击事件的,
如果你想通过鼠标的单击,双击,点下,释放。等做不同的操作,那么请使用鼠标事件:MouseListener




回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马