こんにちは、Javaのシアンの背景にマルチ点滅ブロックを作成するプログラムを作成しています。私はJFramesとCanvasを使用していますが、色をシアンに指定しても何らかの理由で背景が黒くなります。しかし、ボックスを移動すると、ブロックがスペースをシアンで満たしている場合、キーストーリーが表示されます。以下は私が問題に関連していると思うコードです。すべてのヘルプは非常に感謝し、これを読んでいただきありがとうございますされるだろう。(これはおそらく悪い構文とコーディングですが、私の理論はそれをprettying前にコードを動作させるためにであることに注意してください。)JFrameとCanvasを使用していると、背景がシアンではなく黒く表示されます。
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gd = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = gd.getDefaultConfiguration();
// Create off-screen drawing surface
BufferedImage bi = gc.createCompatibleImage(640, 480);
// Objects needed for rendering...
Graphics graphics = null;
Graphics2D g2d = null;
//Why isn't the background color cyan? (It's black)
Color background = Color.CYAN;
Random rand = new Random();
//The x and y positions are randomly generated as are the length and width
int x = rand.nextInt(640/2), y = rand.nextInt(640/2);
int w = rand.nextInt(640/2);
int h = rand.nextInt(480/2);
//To Do: Infinite loops suck, make a death variable
while(true) {
try {
// clear back buffer...
g2d = bi.createGraphics();
g2d.setColor(Color.CYAN);
g2d.fillRect(-1000, 1000, 1000, 1000);
// draw the rectangle...
int r = rand.nextInt(256);
int g = rand.nextInt(256);
int b = rand.nextInt(256);
g2d.setColor(new Color(r, g, b));
g2d.fillRect(x, y, w, h);
//Get the newly drawn rectangles and flip
graphics = buffer.getDrawGraphics();
graphics.drawImage(bi, x, y, canvas);
* "JFrameとCanvasを使用する" * SwingとAWT(Java以前)を混在させないでください。奇妙なことが起こります。カスタムペイントには 'JComponent'または' JPanel'を使います。 –
また、すぐに役立つように、[SSCCE](http://pscode.org/sscce.html)を投稿してください。 –
この[example](http://stackoverflow.com/questions/5136859/mouselistener-help-java/5137250#5137250)は、有用な出発点になる場合があります。 – trashgod