В своем действии «Отменить и очистить» я пытаюсь удалить последний элемент в arrayList (отменить) и удалить все элементы в arraysLists (очистить)
У меня есть 2 списка массивов, прямоугольник и круг.
Когда я запускаю программу, я могу рисовать объекты без проблем, однако ничего не происходит, когда я нажимаю отмену или очистку (закомментированный сброс - это код, который я хотел запустить, поместите средство смены цвета фона как ленивый выход)
Не совсем уверен, что я делаю неправильно, и мне бы хотелось немного постичь
Это для домашнего задания!
Вставил соответствующий код - классы Circle и Rectangle просто имеют конструктор и функцию рисования
GraphicsContext gc, transgc;
// Array list of shapes
ArrayList<Circle> circleList = new ArrayList<Circle>();
ArrayList<Rectangle> rectangleList = new ArrayList<Rectangle>();
// Boolean value if you are drawing a circle
private void drawCircles (ActionEvent e) {
isRectangle = false;
}
// Boolean value if you are drawing a Rectangle
private void drawRectangles (ActionEvent e) {
isRectangle = true;
}
// Clear
private void clear (ActionEvent e){
circleList.removeAll(circleList);
rectangleList.removeAll(rectangleList);
}
private void undo (ActionEvent e){
if (isRectangle == false && circleList.size() > 0)
circleList.remove(circleList.size() - 1);
else if (isRectangle == true && rectangleList.size()>0)
rectangleList.remove(rectangleList.size() - 1);
}
// Draws a shape when mouse is pressed
private void pressHandler(MouseEvent me) {
int s1;
int s2;
if (me.getButton().equals(MouseButton.PRIMARY)) {
if (isRectangle == false){
circleList.add(new Circle(me.getX(), me.getY(), s1, s2, color));
for (Circle g : circleList) {
g.drawCircle(gc);
}
}
else{
rectangleList.add(new Rectangle(me.getX(), me.getY(), s1,
s2,color));
for (Rectangle g : rectangleList) {
g.drawRectangle(gc);
}
}
}
private void dragHandler(MouseEvent me) {
if (isRectangle == false){
circleList.add(new Circle(me.getX(), me.getY(), s1, s2,color));
for (Circle g : circleList) {
g.drawCircle(gc);
}
}
else{
rectangleList.add(new Rectangle(me.getX(), me.getY(), s1,
s2,color));
for (Rectangle g : rectangleList) {
g.drawRectangle(gc);
}
}
}
Может рисовать фигуры, но не может удалить их с холста после их рисования