ListSelectionListener приводит к зависанию View - только если активирован внешний LookAndFeel - PullRequest
0 голосов
/ 10 апреля 2019

У меня довольно специфическая проблема с Swing на OpenJDK 11 , и мне интересно, есть ли у кого-нибудь идея помочь с этим.Я использую Swing в своем программном обеспечении, и в одном из моих диалогов программа на некоторое время зависает каждую секунду или третий щелчок на JTable .Изменения, вызванные этим, обрабатываются в ListSelectionListener, начиная с этого:

 getSelectionModel()
    .addListSelectionListener(
        e -> {
          if (!e.getValueIsAdjusting()) {
          ...

Это происходит только при использовании OpenJDK 11 .Я также использую внешний LookAndFeel, где у меня нет доступа к исходному коду.Если я отключаю LookAndFeel, все также будет работать нормально - даже с OpenJDK 11 .Но и вид работает нормально, если я комментирую часть моего кода.Самая интересная часть - когда я делаю вывод системного времени в слушателе, чтобы найти проблему, нет большей задержки.Даже если я использую свой код, который может вызвать задержку.Задержка всегда происходит раньше.Поэтому я предполагаю, что LookAndFeel может перезаписать некоторые внутренние компоненты, которые борются с обработкой событий.У кого-нибудь здесь есть идея, какая функция или часть свинга может вызвать такое поведение?

В Java 8 все работало нормально.Буду признателен за любую подсказку, чтобы решить это.

...