我正在开发一个简单的 java 游戏,我的滚动条引发异常。
滚动条应该是一个“gameslider”。
线程“Thread-3”中的异常 java.lang.ClassCastException:sun.java2d.NullSurfaceData 无法转换为 sun.java2d.d3d.D3DSurfaceData
在 sun.java2d.d3d.D3DRenderer.copyArea(来源未知)
在 sun.java2d.d3d.D3DSurfaceData.copyArea(来源未知)
在 sun.java2d.SunGraphics2D.doCopyArea(来源未知)
在 sun.java2d.SunGraphics2D.copyArea(来源未知)
在 javax.swing.BufferStrategyPaintManager.copyArea(来源未知)
在 javax.swing.RepaintManager.copyArea(来源未知)
在 javax.swing.JViewport.blitDoubleBuffered(来源未知)
在 javax.swing.JViewport.windowBlitPaint(来源未知)
在 javax.swing.JViewport.setViewPosition(来源未知)
在 javax.swing.plaf.basic.BasicScrollPaneUI$Handler.hsbStateChanged(来源未知)
在 javax.swing.plaf.basic.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(来源未知)
代码行如下:
if (reachedMiddle)
scrollPane.getHorizontalScrollBar().setValue(player.getX() - (widthHorizontalScrollBar / 2));
异常将或多或少随机地引发。我到现在还没弄清楚。
我会确保此代码在 GUI 事件线程上运行。如果您在其他线程上调用 Swing 组件,您可能会遇到奇怪的随机错误。
看看使用SwingUtilities.invokeLater(可运行)执行更新 Swing 组件的任务。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)