JAVA如何监测按住按钮的事件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA如何监测按住按钮的事件相关的知识,希望对你有一定的参考价值。
我是java的初学者,刚学swing里单击button的事件,还没学其他事件。假如我想做一个计时器,按住一个按钮计时,然后放开这个按钮停止计时,记录按住按钮的时间,请问这怎么实现。谢谢
代码如下:
import java.awt.EventQueue;import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.time.Duration;
import java.time.Instant;
import javax.swing.JButton;
import javax.swing.JFrame;
public class MyFrame extends JFrame
private static final long serialVersionUID = 1L;
public Instant start;
public Instant end;
public MyFrame()
setSize(300, 200);
setTitle("Test");
setLocationRelativeTo(null);
setLayout(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JButton btn = new JButton("BUTTON");
btn.setBounds(100, 60, 100, 40);
btn.addMouseListener(new MouseAdapter()
@Override
public void mousePressed(MouseEvent e)
start = Instant.now();
@Override
public void mouseReleased(MouseEvent e)
end = Instant.now();
System.out.println("总用时:" + Duration.between(start, end).toMillis() + "毫秒");
);
add(btn);
public static void main(String[] args)
EventQueue.invokeLater(() ->
try
MyFrame frame = new MyFrame();
frame.setVisible(true);
catch (Exception e)
e.printStackTrace();
);
按下按钮,再松开鼠标之后,总用时将被打印在控制台上,单位是毫秒,你可以设置其他单位
大概这样。查看API就会啦
如何识别按住按钮 iPhone SDK
【中文标题】如何识别按住按钮 iPhone SDK【英文标题】:How to Recognize a Hold Button iPhone SDK如何识别按住按钮 iPhone SDK 【发布时间】:2010-05-21 16:55:31 【问题描述】:嗨,我有一个按钮,我想按住这个按钮写点东西,但我不知道如何识别按住按钮,你能帮我吗?谢谢你
【问题讨论】:
【参考方案1】:TouchDownInside 事件触发,启动一个 NStimer。 TouchUpInside 事件触发,取消定时器。 如果用户按住按钮,则让计时器调用您的方法来执行:计时器延迟将是识别按住所需的时间。
【讨论】:
【参考方案2】:您也可以使用UILongPressGestureRecognizer。
在您的初始化方法中(例如viewDidLoad
),创建一个手势识别器并将其附加到您的按钮:
UILongPressGestureRecognizer *gesture = [[UILongPressGestureRecognizer alloc]
initWithTarget:self
action:@selector(myButtonLongPressed:)];
// you can control how many seconds before the gesture is recognized
gesture.minimumPressDuration = 2;
// attach the gesture to your button
[myButton addGestureRecognizer:gesture];
[gesture release];
事件处理程序myButtonLongPressed:
应如下所示:
- (void) myButtonLongPressed:(UILongPressGestureRecognizer *)gesture
// Button was long pressed, do something
请注意,UILongPressGestureRecognizer
是 continuous event recognizer。
当用户仍然按住按钮时,myButtonLongPressed:
将被多次调用。
如果你只是想处理第一个电话,你可以在myButtonLongPressed:
查看状态:
if (gesture.state == UIGestureRecognizerStateBegan)
// Button was long pressed, do something
【讨论】:
以上是关于JAVA如何监测按住按钮的事件的主要内容,如果未能解决你的问题,请参考以下文章