鼠标不能捕捉快速鼠标移动

a64a0gku  于 2021-07-09  发布在  Java
关注(0)|答案(0)|浏览(189)

我有一系列的 JToggleButtons 可以做一个日历选择器。我已经实现了一种方法,可以将鼠标拖动到按钮上切换多个日期,而无需停止并单击每个日期,而且对于较慢的鼠标移动非常有效:

  1. JToggleButton[] buttons = getCalendarDayButtonArray(); //arbitrary instantiation
  2. for (int d = 0; d < 31; d++) {
  3. final JToggleButton b = new JToggleButton(day);
  4. buttons[d] = b;
  5. buttons[d].addActionListener(new ActionListener() {
  6. public void actionPerformed(ActionEvent e) {//do stuff...}
  7. }
  8. buttons[d].addMouseListener(new MouseAdapter() {
  9. public void mouseEntered(MouseEvent e) {
  10. if (e.getModifiers() == MouseEvent.BUTTON1_MASK) {
  11. b.doClick();
  12. }
  13. }
  14. public void mousePressed(MouseEvent e) {
  15. if (e.getModifiers() == MouseEvent.BUTTON1_MASK) {
  16. b.doClick();
  17. }
  18. }
  19. });
  20. }

然而,这并不完全适用于快速移动。我不确定这是鼠标的轮询率有问题,还是计算机本身的延迟造成的,但似乎鼠标完全跳过了某些按钮,结果 mouseEntered 方法不会为这些按钮调用。有没有一个解决办法,不涉及用户只是移动鼠标缓慢?提前谢谢!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题