栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JTextPane防止在父JScrollPane中滚动

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JTextPane防止在父JScrollPane中滚动

我也遇到了这个烦人的问题,Sbodd的解决方案对我来说是不可接受的,因为我需要能够在表和Jtextareas中滚动。我希望其行为与浏览器相同,在可滚动控件上的鼠标将滚动该控件,直到控件触底,然后继续滚动父滚动窗格,通常是整个页面的滚动窗格。

本课程将做到这一点。只需使用它代替常规的JScrollPane。希望对您有帮助。

public class PDControlScrollPane extends JScrollPane {public PDControlScrollPane() {    super();    addMouseWheelListener(new PDMouseWheelListener());}class PDMouseWheelListener implements MouseWheelListener {    private JScrollBar bar;    private int previousValue = 0;    private JScrollPane parentScrollPane;    private JScrollPane getParentScrollPane() {        if (parentScrollPane == null) { Component parent = getParent(); while (!(parent instanceof JScrollPane) && parent != null) {     parent = parent.getParent(); } parentScrollPane = (JScrollPane)parent;        }        return parentScrollPane;    }    public PDMouseWheelListener() {        bar = PDControlScrollPane.this.getVerticalScrollBar();    }    public void mouseWheelMoved(MouseWheelEvent e) {        JScrollPane parent = getParentScrollPane();        if (parent != null) {  if (e.getWheelRotation() < 0) {     if (bar.getValue() == 0 && previousValue == 0) {         parent.dispatchEvent(cloneEvent(e));     } } else {     if (bar.getValue() == getMax() && previousValue == getMax()) {         parent.dispatchEvent(cloneEvent(e));     } } previousValue = bar.getValue();        }                else { PDControlScrollPane.this.removeMouseWheelListener(this);        }    }    private int getMax() {        return bar.getMaximum() - bar.getVisibleAmount();    }    private MouseWheelEvent cloneEvent(MouseWheelEvent e) {        return new MouseWheelEvent(getParentScrollPane(), e.getID(), e     .getWhen(), e.getModifiers(), 1, 1, e     .getClickCount(), false, e.getScrollType(), e     .getScrollAmount(), e.getWheelRotation());    }}}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/451601.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号