ListSelectionListener导致视图冻结-仅在激活外部LookAndFeel时

时间:2019-04-10 12:49:30

标签: java swing freeze java-11 listselectionlistener

我在 OpenJDK 11 上的 Swing 上有一个非常具体的问题,并且我很好奇是否有人对此有所帮助。我在软件中使用了 Swing ,并且在一个对话框中,程序在单击 JTable 时每隔一秒钟或第二次就会冻结一段时间。由此引起的更改将在ListSelectionListener中进行处理,如下所示:

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

这仅在使用 OpenJDK 11 时发生。我还使用了外部LookAndFeel,但我无法访问源代码。如果禁用了LookAndFeel,那么即使使用 OpenJDK 11 ,一切也都可以正常工作。但是,如果我注释了部分代码,则View也可以正常工作。最令人困扰的部分是-无论我在侦听器中执行系统时间输出到哪里,只要发现问题就没有更大的延迟。即使我使用我的代码似乎也可能导致延迟。延迟总是在之前发生。因此,我的猜测是,LookAndFeel可能会覆盖一些摇摆的内部结构,这些内部结构难以处理事件。在座的任何人都知道哪个功能或挥杆动作的一部分会导致这种行为吗?

在Java 8上,一切正常。我很乐意解决这个问题。

0 个答案:

没有答案