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

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

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

JToggleButton[] buttons = getCalendarDayButtonArray(); //arbitrary instantiation
for (int d = 0; d < 31; d++) {
  final JToggleButton b = new JToggleButton(day);
  buttons[d] = b;
  buttons[d].addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {//do stuff...}
  }

  buttons[d].addMouseListener(new MouseAdapter() {
    public void mouseEntered(MouseEvent e) {
      if (e.getModifiers() == MouseEvent.BUTTON1_MASK) {
        b.doClick();
      }
    }

    public void mousePressed(MouseEvent e) {
      if (e.getModifiers() == MouseEvent.BUTTON1_MASK) {
        b.doClick();
      }
    }
  });

}

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

暂无答案!

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

相关问题