Я застрял на этой проблеме:
Когда я щелкаю внутри фигуры (есть список прямоугольников и окружностей), я выбираю ее (только для отладки, меняет цвет на СИНИЙ). Поэтому, если я щелкаю снаружи, в пустом месте, я отменяю выбор (только для отладки, меняет цвет на предыдущий).
for(int i=0; i<images.size(); i++){
//checking if the click is inside a shape
if((images.get(i).getLocation().getX() < e.getX() && images.get(i).getLocation().getY() < e.getY() && images.get(i).getX() + images.get(i).getWidth() > e.getX() && images.get(i).getLocation().getY() + images.get(i).getHeight() > e.getY())){
images.get(i).setColor(Color.BLUE);
images.get(i).setIsSelected(true);
//debugging
JOptionPane.showMessageDialog(null, images.get(i).getIsSelected());
repaint();
//JOptionPane.showMessageDialog(null, colors.get(i));
}
else{
images.get(i).setColor(colors.get(i));
//debugging
JOptionPane.showMessageDialog(null, images.get(i).getIsSelected());
images.get(i).setIsSelected(false);
repaint();
}
Например, представьте 2 круга и 1 прямоугольник черного цвета. Мой код имеет следующий рабочий процесс:
- Нажмите внутри прямоугольника
- Измените его цвет на СИНИЙ
- Только для отладки выводит «selected == true» (для прямоугольника), «selected = false» (для 1-го круга), «selected = false», (для 2-го круга)
- Нажмите в пустое пространство
- Изменить цвет прямоугольника на предыдущий цвет (черный)
- Только для отладки выводит «selected == false» (для прямоугольника), «selected = false» (для 1-го круга), «selected = false», (для 2-го круга)
- Снова щелкните внутри прямоугольника
- Измените его цвет на СИНИЙ
- Просто для отладки выводит «selected == true» (для прямоугольника), «selected = false» (для 1-го круга), «selected = false», (для 2-го круга)
- Нажмите внутри круга
- Изменить цвет на СИНИЙ
- Только для отладки выводит «selected == true» (для прямоугольника), «selected = true » (для 1-го круга), «selected = false», (для 2-го круга )
- Проблема в том, что цвет прямоугольника снова становится ЧЕРНЫМ. Это должно быть еще СИНИЙ.
Как я могу выбрать 2 или более фигур одновременно?