Reputation: 815
I have a JScrollPane
, which has a JPanel
for its content pane. To that JPanel
I add smaller JPanel
s, and as expected, if I add too much JPanel
, a vertical scrollbar will appear.
The problem is, that my small JPanel
s contains a JScrollPane
too for a JEditorPane
. I'd like to use the mouse wheel only for the outer scrollpane, not for the smaller scrollpane. I already set wheelScrollingEnabled()
to false
for the small scrollpane, but if I scroll in any direction, and the mouse gets over the JEditorPane
, the scrolling doesn't work anymore.
Any advice?
Upvotes: 2
Views: 2305
Reputation: 1763
Add a MouseWheelListener
to your JScrollPane
and when handling an event, pass it to the main JScrollPane
by invoking its dispatchEvent(AWTEvent)
method;
Upvotes: 1
Reputation: 39177
You may try to forward the wheel events from the inner scroll pane to its parent.
innerScrollPane.addMouseWheelListener(new MouseWheelListener() {
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
innerScrollPane.getParent().dispatchEvent(e);
}
});
Upvotes: 8