Java : JScrollPane отключить прокрутку при нажатии ctrl

Я хочу отключить прокрутку колесиком мыши в моей 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);
            }
        }
    });

Отредактировал свой вопрос и решил его сам. Если у вас есть какие-то настройки, сообщите мне!

6
задан user1076625 2 December 2011 в 15:11
поделиться