我构建了一个具有许多navegability功能的自定义日历控件,我现在面临的唯一问题是在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();
}
});
code + component + console results
if(e.isShiftDown()){
if(e.getDeltaY()>0)//always 0.0
prev.fire();//never fired
else
next.fire();//always fired
}
答案 0 :(得分:1)
似乎使用了Shift键从
垂直滚动到水平滚动(请参阅:bugs)。
因此,当按下Shift键时,e.getDeltaY()
将返回0。
在这种情况下,请使用e.getDeltaX()
。