2011-09-01 10 views
2

を返すコードは(私は、このクラスでのJFrameを拡張しています)(ポイント「サイズ」は、画面の大きさである)である:Image.getGraphicsは、()ここでヌル

setVisible(true); 
backBuffer = createImage(size.x, size.y); 
backGraphics = backBuffer.getGraphics(); 

私は問題がで存在することを知っています「createImageメソッド」と記述されているように、「コンポーネントが表示可能でない場合は戻り値がnullになる可能性があります。しかし私はsetVisible(true)!これは私のプログラム全体で問題となっており、過去のソリューションは変わっています。しかし今回は、私はそれを修正するように見えることはできません。

これは定期的に動作していて動作していない可能性があります。おそらく10回動作してから3回dosnt動作し、サイクルが繰り返されます。

私は多くのGoogle検索で提案されたBufferedImageにcreateImageをキャストしようとしましたが、問題は引き続き発生します。

私もjframeを拡張せず、 'JFrame jframe = new JFrame()'を作成し、それを使って/ etcを描画しようとしましたが、それでも問題が発生します。

答えて

1

これはhereに由来します。

これらの例は、画面と互換性のあるバッファリングされた画像を作成:

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
GraphicsDevice gs = ge.getDefaultScreenDevice(); 
GraphicsConfiguration gc = gs.getDefaultConfiguration(); 

// Create an image that does not support transparency 

bimage = gc.createCompatibleImage(width, height, Transparency.OPAQUE); 

// Create an image that supports transparent pixels 

bimage = gc.createCompatibleImage(width, height, Transparency.BITMASK); 

// Create an image that supports arbitrary levels of transparency 

bimage = gc.createCompatibleImage(width, height, Transparency.TRANSLUCENT); 
+0

はありがとうございました!あなたは私がどれくらい多くの問題を抱えていたのか分かりません...それが動作するまで5回走らなければならないという信じられないほど厄介なことです! – khyperia

+0

あなたは大歓迎です!それが問題を解決した場合は、その答えを受け入れるようにして、質問が閉じられるようにしてください! –

関連する問題