我有一个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
方法不会为这些按钮调用。是否存在一种不涉及用户只需慢慢移动鼠标的解决方法?提前谢谢!