2012-06-21 31 views
1

我得到一個Java應用程序下面的異常兼容:GraphicsConfiguration不是與Canvas3D

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: 
Canvas3D: GraphicsConfiguration is not compatible with Canvas3D 
    at javax.media.j3d.Canvas3D.checkForValidGraphicsConfig(Canvas3D.java:965) 
    at javax.media.j3d.Canvas3D.<init>(Canvas3D.java:1032) 
    ...etc... 

Canvas3D被實例化這樣的:

GraphicsConfiguration graphicsConfiguration = SimpleUniverse.getPreferredConfiguration(); 
Canvas3D canvas3D = new Canvas3D(graphicsConfiguration); 

此代碼是一臺機器上正常工作(惠普dc7900臺式機),但不是一些新的(惠普630筆記本電腦)。所有運行的XP。

API docs表示此異常意味着「指定的GraphicsConfiguration不支持3D渲染」。那是什麼意思? '首選配置'大概是從操作系統中獲得的,因此反映了實際可能的情況......但我有點失落。

一個bug report表明,這種代碼作爲替代:

GraphicsConfigTemplate3D template = new GraphicsConfigTemplate3D(); 
GraphicsConfiguration gc = GraphicsEnvironment.getLocalGraphicsEnvironment(). 
getDefaultScreenDevice().getBestConfiguration(template); 
Canvas3D c3d = new Canvas3D(gc); 

但它不會改變任何東西。

Similarproblems似乎已被修改的圖形適配器設置或選擇不同的渲染器,例如:減少位深度爲16,或-Dj3d.rend=d3d運行Java,但這樣做不會改變任何東西解決。

回答

1

事實證明,它僅僅是一個Java版本不兼容性:我從1.7降級到1.6,並且一切正常。