Я разрабатываю игру на 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ожидается изменение цвета второй фигуры, но не другой одновременно. Пока, когда я нажимаю на первую фигуру, она меняет цвет, а вторая, когда я нажимаю на нее, она не меняет цвет. Что касается сообщений об ошибках, я ничего не получаю.
Любая помощь приветствуется.
// отредактировано сегодня