黑马程序员技术交流社区
标题:
Button类可以监听按下去而不是抬起来的动作吗?
[打印本页]
作者:
lwy0319
时间:
2014-3-29 05:48
标题:
Button类可以监听按下去而不是抬起来的动作吗?
将一个接收ActionEvent类事件的方法actionPerformed(ActionEvent e)写进监听器里,再将此监听器加入到Button类组件中,然后我发现只有鼠标抬起来时才能触发动作事件,有没有按下去就触发的方法?
作者:
林发明
时间:
2014-3-29 08:01
查阅button的api知道,按钮有个特有监听器addActionListener(动作侦听器),
如果要实现按下鼠标就触发事件的话 ,可以给按钮添加一个共性事件监听,也就是鼠标,
这样可以监听跟踪鼠标何时被按下、释放、单击、移动、拖动、何时进入一个组件、何时退出等等操作,
详细说明请参阅java.awt.event 包下的MouseAdapter类 很容易就知道了:)
下面是毕老师讲解的例子:
//给按钮添加一个鼠标监听
but.addMouseListener(new MouseAdapter()
{
private int count = 0;
public void mouseEntered(MouseEvent e) //鼠标进入
{
System.out.println("鼠标进入"+count++);
}
public void mouseClicked(MouseEvent e)//单击鼠标
{
if (e.getClickCount()==2)
{
System.out.println("双击鼠标");
}
else
System.out.println("单击鼠标");
}
});
复制代码
作者:
haixian
时间:
2014-3-29 09:45
应该有onbuttonPressed事件吧
作者:
lwy0319
时间:
2014-3-30 06:25
原来如此,之前学了一部分就去看API了,而Button类中并不单独包含addMouseListener()方法,它只包含了addActionListener方法,让我以为它只能加入动作监听,属于按钮的动作事件貌似只有一次完整的按下抬起。现在才知道它可以加入鼠标监听事件。。。只是方法在Component中写的,没去看。我把代码补充上啦,谢谢你们:
import java.awt.*;
import java.awt.event.*;
class ButtonAdapter extends MouseAdapter{
public void mousePressed(MouseEvent e){
System.out.println("鼠标按下去啦");
}
public void mouseReleased(MouseEvent e){
System.out.println("鼠标抬起来啦");
}
public void mouseClicked(MouseEvent e){
System.out.println("鼠标按下去又抬起来啦");
}
}
public class Graph3 {
public static void main(String[] args) {
Frame f=new Frame("lwy");
Button but=new Button("按我");
but.addMouseListener(new ButtonAdapter());
f.add(but);
f.add(new Label("我是一个标签"));
f.setBounds(100, 100, 500, 400);
f.setLayout(new FlowLayout());
f.setVisible(true);
}
}
复制代码
作者:
向阳泪无痕
时间:
2014-3-30 08:23
本帖最后由 向阳泪无痕 于 2014-3-30 08:27 编辑
ActionEvent 就是处理点击事件的,
如果你想通过鼠标的单击,双击,点下,释放。等做不同的操作,那么请使用鼠标事件:MouseListener
QQ五笔.png
(8.09 KB, 下载次数: 49)
下载附件
2014-3-30 08:26 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2