我有一系列的 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
方法不会为这些按钮调用。有没有一个解决办法,不涉及用户只是移动鼠标缓慢?提前谢谢!
暂无答案!
目前还没有任何答案,快来回答吧!