Я хочу отключить прокрутку с помощью колесика мыши в моем JScrollPane, пока нажата Ctrl.
Когда вы нажимаете Ctrl и перемещаете колесо, вы увеличиваете и уменьшаете масштаб, а также прокручиваете панель, а это не то, что я хотел.
Вот рабочий код:
scroller = new JScrollPane(view);
scroller.removeMouseWheelListener(scroller
.getMouseWheelListeners()[0]);
scroller.addMouseWheelListener(new MouseWheelListener() {
public void mouseWheelMoved(final MouseWheelEvent e) {
if (e.isControlDown()) {
if (e.getWheelRotation() < 0) {
// Zoom +
} else {
// Zoom -
}
} else if (e.isShiftDown()) {
// Horizontal scrolling
Adjustable adj = getScroller().getHorizontalScrollBar();
int scroll = e.getUnitsToScroll() * adj.getBlockIncrement();
adj.setValue(adj.getValue() + scroll);
} else {
// Vertical scrolling
Adjustable adj = getScroller().getVerticalScrollBar();
int scroll = e.getUnitsToScroll() * adj.getBlockIncrement();
adj.setValue(adj.getValue() + scroll);
}
}
});
Отредактировал мой вопрос и решил его сам.
Если у вас есть какие-либо хитрости, то скажите мне!