Имея две овальные формы, как изменить цвет только одного в Java - PullRequest
0 голосов
/ 20 октября 2019

Я разрабатываю игру на Java для детей. Цель состоит в том, чтобы они узнали о существовании приемлемых практик. У меня куча проблем, но сейчас я хочу сосредоточиться именно на этом. Как изменить цвет второй овальной формы?

Я использую NetBeans, и я попытался скопировать код, который соответствует одной форме, и попытался изменить его на второй овалформа. В то же время, Я уже скопировал линию, которая меняет цвет первой фигуры, и изменил ее, чтобы изменить цвет для второй.

public class Colorchange extends JFrame {

    //set JPanel(?)
    public Colorchange(){

        setTitle("Light's On! Light's Off!");
        setSize(1000, 700);
        MyPanel pane = new MyPanel();
        add(pane);
    }

    public static void main(String[] args) {
        Colorchange ob = new Colorchange();
        ob.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ob.setVisible(true);
    }
}

class MyPanel extends JPanel{

    int x = 200, y = 200, r = 50;
    //color changed
    Color co = Color.YELLOW;
    Color co2 = Color.RED;

    public MyPanel(){
        //mouseClicked
        addMouseListener(new MouseAdapter(){
            public void mouseClicked(MouseEvent me){
                //new
                if(me.getX() >= (x-r) && me.getX() < (x+r) && me.getY() >= (y-r) && me.getY() < (y+r)){
                    co = Color.WHITE;
                    repaint();
                }
                //where I think it's the problem
                if(me.getX() >= (x-r) && me.getX() < (x+r) && me.getY() >= (y-r) && me.getY() < (y+r)){
                    co2 = Color.WHITE;
                    repaint();
                }                
            }
        });
    }

    @Override
    public void paintComponent(Graphics g){
        super.paintComponent(g);
        g.setColor(co);
        g.fillOval(x-r, y-r, 2*r, 3*r);
        g.setColor(co2);
        g.fillOval(x+r, y+r, 2*r, 3*r);
    }
}

Iожидается изменение цвета второй фигуры, но не другой одновременно. Пока, когда я нажимаю на первую фигуру, она меняет цвет, а вторая, когда я нажимаю на нее, она не меняет цвет. Что касается сообщений об ошибках, я ничего не получаю.

Любая помощь приветствуется.

// отредактировано сегодня

...