#java
#java
Вопрос:
Итак, это класс, в котором я создаю круги, которые отлично работают.
public class CircleAnimations {
private ArrayList<Circle> circles; // the circles to animate
private int size; // canvas width and height (will be square)
private Random rng; // use to make random numbers
/** create a drawing pane of a particular size */
public CircleAnimations(int s) {
circles = new ArrayList<>();
size = s;
rng = new Random();
//don't mess with this
StdDraw.setCanvasSize(size, size); // set up drawing canvas
StdDraw.setXscale(0, size); // <0, 0> is bottom left. <size-1, size-1> is top right
StdDraw.setYscale(0, size);
}
public void drawCircle() {
for (int i = 0; i < circles.size(); i ) {
circles.get(i).draw();
}
}
public void addCircle() {
circles.add(new Circle(rng.nextInt(size - 1), rng.nextInt(size - 1), rng.nextInt(75),
new Color(rng.nextInt(255), rng.nextInt(255), rng.nextInt(255))));
circles.add(new Circle(rng.nextInt(size - 1), rng.nextInt(size - 1), rng.nextInt(75),
new Color(rng.nextInt(255), rng.nextInt(255), rng.nextInt(255))));
circles.add(new Circle(rng.nextInt(size - 1), rng.nextInt(size - 1), rng.nextInt(75),
new Color(rng.nextInt(255), rng.nextInt(255), rng.nextInt(255))));
drawCircle();
}
public void removeClicked() {
addCircle();
while (circles.size() > 0) {
for (int i = circles.size() - 1; i > 0; i--) {
double mouseXPos = StdDraw.mouseX();
double mouseYPos = StdDraw.mouseY();
if (StdDraw.isMousePressed()) {
if (mouseXPos < circles.get(i).getX() circles.get(i).getRadius()
|| mouseXPos > circles.get(i).getX() - circles.get(i).getRadius()) {
if (mouseYPos < circles.get(i).getY() circles.get(i).getRadius()
|| mouseYPos > circles.get(i).getX() - circles.get(i).getRadius()) {
circles.remove(i);
drawCircle();
}
}
}
}
}
}
}
Метод удаления круга, на который был нажат, по какой-то причине не работает.
Комментарии:
1. Является ли выбрасывание исключением? Например, ConcurrentModificationException или какая у вас ошибка?
2. Вероятно, это ошибка алгоритма, поскольку код компилируется и работает нормально, просто когда я нажимаю на круг, он не удаляется.
3. Если вы используете библиотеку или фреймворк для рисования графики, пожалуйста, пометьте его, если тег существует.
4. Я полагаю, что использую этот класс, написанный моим учителем github.com/asdfasdfasd669/Circles/blob/main/StdDraw.java
5. Итак, вы не можете пометить его тегом, но вы можете добавить это в сам вопрос.