I have a Swing application with some sort of repaint issue. When a screen (JFrame) is closed, artifacts from that screen are sometimes painted over other screens. It is completely unreproducible on the 100+ developer machines at our office and most of the thousands of users using this software. For the past several years, there have been scattered reports of the issue, but we have always blamed in on the graphics card or driver. The number of reports of the issue have risen sharply, though, in the last several months, so we need to figure out the real cause.
Almost all of our clients run on Windows, and it affects both Windows 7 and 8 machines. We typically run on JRE 1.6.0_29, but the issue also happens on 1.6.0_45 and 1.7.0_51.
The picture below illustrates the issue. I outlined the artifact in red - this is part of another JFrame that was closed. When the JFrame was visible, it wasn't at that location on the screen. Also note that the columns of the JTable just above the artifacts are out of line. Lastly, notice that the artifact isn't painted just over the JTable, but over its parent JScrollPane and a separate JPanel at the very bottom of the screen.
Anybody have any ideas what could cause this?
-Dsun.java2d.opengl=true
or-Dsun.java2d.d3d=false
- sorry, until now, and given the few information, this is not much more than a guess or a gut feeling... But I'm curious: Does this also happen on top of NON-Swing applications? – Elisavetpol