単純な Java ゲームを開発していますが、スクロールバーで例外が発生しています。スクロールバーは「gameslider」であるはずです。
スレッド「Thread-3」での例外 java.lang.ClassCastException: sun.java2d.NullSurfaceData は、sun.java2d.d3d.D3DRenderer.copyArea で sun.java2d.d3d.D3DSurfaceData にキャストできません (不明なソース)。 .D3DSurfaceData.copyArea(不明なソース)、sun.java2d.SunGraphics2D.doCopyArea(不明なソース)、sun.java2d.SunGraphics2D.copyArea(不明なソース)、javax.swing.BufferStrategyPaintManager.copyArea(不明なソース)、javax.swing.RepaintManager javax.swing.JViewport.blitDoubleBuffered (不明なソース) の .copyArea (不明なソース) javax.swing.JViewport.windowBlitPaint (不明なソース) で javax.swing.JViewport.setViewPosition (不明なソース) javax.swing.plaf.basic の .BasicScrollPaneUI$Handler.hsbStateChanged(不明なソース)。BasicScrollPaneUI$Handler.stateChanged(不明なソース) javax.swing.DefaultBoundedRangeModel.fireStateChanged(不明なソース) で javax.swing.DefaultBoundedRangeModel.setRangeProperties(不明なソース) javax.swing.DefaultBoundedRangeModel.setValue で(不明なソース) javax.swing. JScrollBar.setValue(不明なソース) で GameEnvironment.GamePanel.gameUpdate(GamePanel.java:171) で GameEnvironment.GamePanel.run(GamePanel.java:73) で java.lang.Thread.run(不明なソース)GamePanel.gameUpdate(GamePanel.java:171) at GameEnvironment.GamePanel.run(GamePanel.java:73) at java.lang.Thread.run(不明なソース)GamePanel.gameUpdate(GamePanel.java:171) at GameEnvironment.GamePanel.run(GamePanel.java:73) at java.lang.Thread.run(不明なソース)
コード行は次のとおりです。
if (reachedMiddle)
scrollPane.getHorizontalScrollBar().setValue(player.getX() - (widthHorizontalScrollBar / 2));
例外は多かれ少なかれランダムに発生します。私はこれまでそれを理解していませんでした。