JScrollPane в JScrollPane - PullRequest
       7

JScrollPane в JScrollPane

2 голосов
/ 04 января 2012

У меня есть JScrollPane, который имеет JPanel для своей панели содержимого. К этому JPanel я добавляю меньшие JPanel с, и, как ожидается, если я добавлю слишком много JPanel, появится вертикальная полоса прокрутки.

Проблема в том, что мои маленькие JPanel s содержат JScrollPane тоже для JEditorPane. Я бы хотел использовать колесико мыши только для внешней полосы прокрутки, а не для меньшей полосы прокрутки. Я уже установил wheelScrollingEnabled() на false для маленькой области прокрутки, но если я прокручиваю в любом направлении, и мышь переходит на JEditorPane, прокрутка больше не работает.

Любой совет?

Ответы [ 2 ]

8 голосов
/ 04 января 2012

Вы можете попытаться перенаправить события колеса с внутренней панели прокрутки на родительский.

innerScrollPane.addMouseWheelListener(new MouseWheelListener() {

    @Override
    public void mouseWheelMoved(MouseWheelEvent e) {
        innerScrollPane.getParent().dispatchEvent(e);
    }
});
1 голос
/ 04 января 2012

Добавьте MouseWheelListener к вашему JScrollPane и при обработке события передайте его основному JScrollPane, вызвав его метод dispatchEvent(AWTEvent);

...