Когда я нажимаю мышью в JPanel, программа создает зеленую точку и отображает счетчик на экране для количества точек. Точки находятся в списке массивов, сохраненных как объекты. Я пытаюсь изменить этот код, чтобы, если я нажму в радиусе существующей точки (каждый с радиусом 6), эта точка исчезнет из списка и будет удалена с экрана.Как удалить объект из списка массивов после события мыши?
(Перед тем, как спросить, да, вы не можете признать это как проблема домашних заданий и нет, я не пытаюсь обмануть)
Я понял, что это включает в себя создание для цикла для сканирования объектов в пределах массива, глядя для получения объектов, на которые мог щелкнуть указатель. Однако я смущен, как это сделать точно
Спасибо!
public class DotsPanel extends JPanel
{
private final int SIZE = 6; // radius of each dot
private ArrayList<Point> pointList;// "Point"s are objects that rep. the x & y coordinates of a dot
public DotsPanel()
{
pointList = new ArrayList<Point>();
addMouseListener (new DotsListener());
setBackground(Color.black);
setPreferredSize(new Dimension(300, 200));
}
public void paintComponent(Graphics page)
{
super.paintComponent(page);
page.setColor(Color.green);
for (Point spot : pointList)
page.fillOval(spot.x-SIZE, spot.y-SIZE, SIZE*2, SIZE*2);
page.drawString("Count: " + pointList.size(), 5, 15);//draws the image of the counter
}
private class DotsListener implements MouseListener
{
public void mousePressed(MouseEvent event)
{
pointList.add(event.getPoint());
repaint();
}
public void mouseClicked(MouseEvent event) {}
public void mouseReleased(MouseEvent event) {}
public void mouseEntered(MouseEvent event) {}
public void mouseExited(MouseEvent event) {}
}
}
pointList.contains (event.getPoint()) - возвращает true, если arraylist содержит значение, иначе false –