Java Swing: пользовательский интерфейс не перекрашен правильно (белый) - PullRequest
0 голосов
/ 30 октября 2018

Я столкнулся с проблемой в клиентском интерфейсе приложений, в которой при определенных условиях (вход пользователя в учетную запись заблокированного рабочего стола) элементы пользовательского интерфейса (фреймы, раскрывающиеся списки) отображаются некорректно. Это происходит в Windows 10 64-битной версии 1709. Я считаю, что это проблема низкого уровня в интерфейсе с системой или с драйвером графической карты. Я уже пытался установить sun.java2d.d3d = false и многие другие подходы (обновление драйверов, изменение свойств управления питанием), но безуспешно. Я также отслеживал потоки (ни один из них не заблокирован), и я делаю обновления в invokeLater, так что это не связано с зависанием пользовательского интерфейса из-за длительных вызовов.

Проблема возникает только на нескольких компьютерах, в то время как другие с той же версией Windows не имеют таких проблем. В пользовательском интерфейсе нет какого-либо конкретного действия, которое может выполнить пользователь, которое могло бы вызвать проблему, всегда кажется, что это какая-то внешняя причина, которую я пытаюсь определить.

То, что я ищу, это идея, как я могу отладить на более низком уровне или даже на стороне операционной системы, чтобы увидеть, что не работает. Есть ли способ для меня регистрировать любые связанные с графикой события, поступающие из ОС (например, изменения в Look and Feel, которые передаются в JVM)

Спасибо за помощь

1 Ответ

0 голосов
/ 05 ноября 2018

Хотя я не нашел ответа, как регистрировать такие события, я нашел решение проблемы: При запуске Java-приложения пользовательского интерфейса, запустите его с Java вместо Java. Таким образом, будут видны некоторые более глубокие исключения, которые не регистрируются log4j, в моем случае это: https://bugs.java.com/view_bug.do?bug_id=6429812

Исключение в потоке "AWT-EventQueue-0" java.lang.NullPointerException в com.sun.java.swing.plaf.windows.WindowsTableHeaderUI $ XPDefaultRenderer.paint (WindowsTableHeaderUI.java:171) в javax.swing.CellRendererPane.paintComponent (CellRendererPane.java:151) в javax.swing.plaf.basic.BasicTableHeaderUI.paintCell (BasicTableHeaderUI.java:710) в javax.swing.plaf.basic.BasicTableHeaderUI.paint (BasicTableHeaderUI.java:652) в javax.swing.plaf.ComponentUI.update (ComponentUI.java:161) в javax.swing.JComponent.paintComponent (JComponent.java:780) в javax.swing.JComponent.paint (JComponent.java:1056) в javax.swing.JComponent.paintChildren (JComponent.java:889) в javax.swing.JComponent.paint (JComponent.java:1065) в javax.swing.JViewport.paint (JViewport.java:728) в javax.swing.JComponent.paintChildren (JComponent.java:889) в javax.swing.JComponent.paint (JComponent.java:1065) на javax.swing.JComponent.paintChildren (JComponent.java:889)

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