简体   繁体   English

Java Swing:UI无法正确重绘(白色)

[英]Java swing: UI not repainted correctly (white)

I am encountering a problem in my applications UI Client where in certain conditions (user logins to locked desktop account) the UI elements (frames, drop down lists) are not displayed correctly. 我的应用程序UI客户端遇到问题,在某些情况下(用户登录到锁定的桌面帐户),UI元素(框架,下拉列表)无法正确显示。 It happens on Windows 10 64bit Version 1709. I believe this is a low-level issue on interface with the system or with graphic card driver. 它在Windows 10 64位版本1709上发生。我认为这是与系统或图形卡驱动程序接口的低级问题。 I have already tried setting sun.java2d.d3d=false and many other approaches (updating drivers, changing power management properties) with no success. 我已经尝试设置sun.java2d.d3d = false和许多其他方法(更新驱动程序,更改电源管理属性)没有成功。 I have also monitored threads (none are being locked) and I do updates in invokeLater so this is not related to UI freezes due to prolonged calls. 我还监视了线程(没有一个线程被锁定),并且我在invokeLater中进行了更新,因此这与由于长时间调用而导致的UI冻结无关。

The issue only occurs on a few machines while others with the same windows version have no such problems. 仅在少数机器上会出现此问题,而其他具有相同Windows版本的机器则不会出现此类问题。 There isn't any particular action in the UI that user can perform that would trigger the issue, it always seems to be some external cause that I try to pinpoint. 用户界面中没有用户可以执行的任何特定操作来触发此问题,这似乎总是我试图指出的一些外部原因。

What I am looking for is an idea how can I debug on lower level or even on the operating system side to see what is failing. 我要寻找的是一个想法,该如何在较低级别甚至在操作系统方面进行调试以查看失败的原因。 Is there a way for me to log any graphics related events that come from the OS (like changes in Look and Feel that are passed down to JVM) 我有什么办法可以记录来自操作系统的任何与图形相关的事件(例如传递给JVM的外观变化)

Thank you for help 谢谢你的帮助

Although I did not find the answer how to log such events I have found a solution to the problem: When starting a UI java application, start it with java instead of javaw. 尽管没有找到如何记录此类事件的答案,但我找到了解决该问题的方法:启动UI Java应用程序时,请使用Java而不是javaw来启动它。 This way some deeper exceptions that are not logged by log4j will be visible, in my case it is: https://bugs.java.com/view_bug.do?bug_id=6429812 这样一来,一些未由log4j记录的更深层次的异常将可见,在我的情况下为: https : //bugs.java.com/view_bug.do?bug_id=6429812

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at com.sun.java.swing.plaf.windows.WindowsTableHeaderUI$XPDefaultRenderer.paint(WindowsTableHeaderUI.java:171) at javax.swing.CellRendererPane.paintComponent(CellRendererPane.java:151) at javax.swing.plaf.basic.BasicTableHeaderUI.paintCell(BasicTableHeaderUI.java:710) at javax.swing.plaf.basic.BasicTableHeaderUI.paint(BasicTableHeaderUI.java:652) at javax.swing.plaf.ComponentUI.update(ComponentUI.java:161) at javax.swing.JComponent.paintComponent(JComponent.java:780) at javax.swing.JComponent.paint(JComponent.java:1056) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JViewport.paint(JViewport.java:728) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) com.sun.java.swing.plaf.windows.WindowsTableHeaderUI $ XPDefaultRenderer.paint(WindowsTableHeaderUI.java:171)处的线程“ AWT-EventQueue-0”中的java.lang.NullPointerException,位于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)。 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)at javax.swing.JComponent.paint(JComponent.java:1065)at javax.swing.JViewport.paint(JViewport.java:728)at javax.swing.JComponent.paintChildren(JComponent.java:889)在javax.swing.JComponent.paint(JComponent.java:1065)在javax.swing.JComponent.paintChildren(JComponent.java:889)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM