展开全部
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.util.Calendar;
import java.util.Date;
import javax.swing.JFrame;
import javax.swing.Timer;
public class MyFrame extends JFrame {
private Date lastTime;
public Date getLastTime() {
return lastTime;
}
public void setLastTime(Date lastTime) {
this.lastTime = lastTime;
}
public void createAndShowUI(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPane = getContentPane();
addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
lastTime = Calendar.getInstance().getTime();
}
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
lastTime = null;
}
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
});
setPreferredSize(new Dimension(300,200));
pack();
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
final MyFrame frame = new MyFrame();
frame.createAndShowUI();
ActionListener listener = new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(frame.getLastTime()!=null){
Date last = frame.getLastTime();
Date now = Calendar.getInstance().getTime();
if((now.getTime()-last.getTime())>3000){
System.out.println("悬浮了32313133353236313431303231363533e59b9ee7ad94313333656537643秒");
}
}
}
};
int delay = 1000;
Timer timer = new Timer(delay,listener);
timer.start();
}
}
from@网页链接
本文展示了如何在Java Swing中实现鼠标监听事件,特别是鼠标进入和退出组件时的悬停处理。通过创建MouseListener并重写相关方法,记录鼠标进入时间,并使用Timer检查悬停时长,当超过特定时间阈值时触发相应操作。
424

被折叠的 条评论
为什么被折叠?



