我构建了一个具有许多含义性功能的自定义日历控件,现在面临的唯一问题是" shift shift scrollwheel"。
mainb.setOnScroll(e->{
mainb.requestFocus();
System.out.println(e.getDeltaY());
if(e.isShiftDown()){
if(e.getDeltaY()>0)
prev.fire();
else
next.fire();
}else if(e.isControlDown()){
System.out.println(e.getDeltaY());
if(e.getDeltaY()>0)
prevDay();
else
nextDay();
}else{
if(e.getDeltaY()>0)
prevWeek();
else
nextWeek();
}
});
代码 组件 控制台结果
if(e.isShiftDown()){
if(e.getDeltaY()>0)//always 0.0
prev.fire();//never fired
else
next.fire();//always fired
}
似乎是使用移位键从垂直到水平滚动(请参阅:错误)。因此,按下移位键时e.getDeltaY()
将返回0。在这种情况下使用e.getDeltaX()
。