0

私がやりたいのは、マウスが緑の四角形の上にあるときに、緑の四角形を赤に変えたいのですが、出力が playColor が赤であると言っているにもかかわらず、赤に変わりません。どうして?コードは以下のとおりです。

package game;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;

public class StartScreen implements MouseMotionListener {
    int mouseX, mouseY;
    Color playColor = Color.GREEN;

    public void drawStartScreen(Graphics g) {
        g.setColor(playColor);
        g.fillRect(200, 200, 100, 100);
        System.out.println(playColor);
    }

    @Override
    public void mouseDragged(MouseEvent me) { }

    @Override
    public void mouseMoved(MouseEvent me) {        
        mouseY = me.getYOnScreen();
        mouseX = me.getXOnScreen();
        isMouseover();
    }

    private void isMouseover() {

        System.out.println("x: " + mouseX + "y: " + mouseY);
        if (mouseX > 200 && mouseX < 300 && mouseY > 200 && mouseY < 300) {
            System.out.println(playColor);
            playColor = Color.RED;
        }
    }
}
4

2 に答える 2

1

変数を赤に設定しているだけですが、長方形の色が赤に変わることはありません。これを実現するsetColorは、長方形でメソッドを再度呼び出す必要があります。

playColor = Color.RED;
drawStartScreen(g);
于 2012-10-28T01:03:37.617 に答える
0

変数を長方形ではなく赤に設定しています。setColor長方形で再度呼び出す必要があります。

于 2012-10-28T00:44:42.410 に答える