Java JTextPane性能低下

zim*_*m32 2 java performance swing

我有一个简单的测试项目,它创建一个框架并向其添加一个JTextPane

当我选择文本并在JTextPane区域内移动鼠标时一切都很好,但是当鼠标离开JTextPane区域并且我继续上下移动鼠标时,我的性能很低.选择不顺利.

Java程序是正常的吗?

我该怎么做才能解决这个问题?

代码和结果如下图所示

public class Main {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() { 
            @Override
            public void run() {
                Application app = new Application();
                app.run();
            }
        });
    }
}

class Application {
    protected JFrame frame;

    public Application(){
        frame = new JFrame("Test");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public void run(){
        init();
        showFrame();
    }
    protected void init(){
        frame.setSize(new Dimension(1000,700));
        JTextPane textpane = new JTextPane();
        frame.add(textpane);
    }
    protected void showFrame(){
        this.frame.setVisible(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

截图

cam*_*ckr 5

将JTextPane添加到JScrollPane并将滚动窗格添加到框架.

编辑:

误解了你的问题.是的,我注意到选择速度稍慢.

请参阅JComponent.setAutoscrolls(...)方法.正如API所说:

将鼠标拖动到组件边界之外并继续按住鼠标按钮时会生成合成鼠标拖动事件

我猜这些合成事件的产生并不像正常事件的产生那么快,因此选择不那么顺利.我认为你无能为力.