Java JTextPane низкая производительность - PullRequest
2 голосов
/ 09 июня 2011

У меня есть простой тестовый проект, который создает фрейм и добавляет к нему один 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);
    }
}

screenshot

1 Ответ

5 голосов
/ 09 июня 2011

Добавьте JTextPane в JScrollPane и добавьте панель прокрутки к фрейму.

Редактировать:

Неправильно понял вашу проблему.Да, я замечаю, что выбор немного медленнее.

См. Метод JComponent.setAutoscrolls (...).Как говорит API:

события перетаскивания синтетической мыши генерируются, когда мышь перетаскивают за пределы компонента, а кнопку мыши продолжают удерживать нажатой

Я думаю,генерация этих синтетических событий не такая быстрая, как генерация нормального события, поэтому выбор не такой плавный.Я не думаю, что с этим можно что-то сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...