首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MouseWheelListener块滚动

MouseWheelListener块滚动
EN

Stack Overflow用户
提问于 2012-03-25 05:51:57
回答 2查看 1.8K关注 0票数 3
代码语言:javascript
复制
    JEditorPane.addMouseWheelListener(new MouseWheelListener() {
        public void mouseWheelMoved(MouseWheelEvent e) {
        }
    });

当我在JEditorPane中添加这些行时,滚动停止工作。怎样才能治愈呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-25 06:07:16

你应该发布更多的代码来获得更好的帮助。然而,这个简单的演示对我来说工作得很好(即在向JScrollPane添加MouseWheelListener之后,滚动仍然有效)。

代码语言:javascript
复制
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;

import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;

public class Frame
{
    public static void main( String[] args )
    {
        JFrame frame = new JFrame( );
        JEditorPane pane = new JEditorPane( );

        String t = "";
        for ( int i = 0 ; i < 10000 ; i++ ) t += "t";

        pane.setText( t );

        JScrollPane scroll = new JScrollPane( pane );

        scroll.addMouseWheelListener( new MouseWheelListener( )
        {
            @Override
            public void mouseWheelMoved( MouseWheelEvent e )
            {
                System.out.println( "Scroll" );
            }
        });

        frame.add( scroll );
        frame.setSize( 400, 400 );
        frame.setVisible( true );
    }
}
票数 2
EN

Stack Overflow用户

发布于 2012-03-25 06:03:02

您可以阅读有关如何在Javadoc中分派MouseWheelEvents的内容:http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/event/MouseWheelEvent.html

简而言之,在swing中,事件被传递到光标下的最上面的组件,在大多数情况下,鼠标滚轮事件是由JScrollPane处理的。JEditorPane内部包含一个滚动窗格,因此如果您在JEditorPane上添加一个侦听器,JScrollPane将停止接收事件。这就是你有问题的原因。更好的做法是向JScrollPane添加一个监听器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9855941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档