我有一个JScrollPane,它的内容窗格有一个JPanel。在该JPanel中,我添加了较小的JPanel,并且如预期的那样,如果添加了太多的JPanel,将出现一个垂直滚动条。
问题是,我的小型JPanels也包含一个JEditorPane的JScrollPane。我想只对外滚动窗格使用鼠标轮,而不对较小的滚动窗格使用。我已经为小滚动窗格将wheelScrollingEnabled()设置为false,但是如果我向任何方向滚动,而鼠标越过JEditorPane,滚动就不再工作了。
有什么建议吗?
发布于 2012-01-04 15:57:24
您可以尝试将车轮事件从内部滚动窗格转发到其父滚动窗格。
innerScrollPane.addMouseWheelListener(new MouseWheelListener() {
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
innerScrollPane.getParent().dispatchEvent(e);
}
});发布于 2012-01-04 15:57:27
将MouseWheelListener添加到JScrollPane中,在处理事件时,通过调用其dispatchEvent(AWTEvent)方法将其传递给主JScrollPane;
https://stackoverflow.com/questions/8729629
复制相似问题