Я работаю над приложением планирования задач. У меня есть кнопка «новая задача», чтобы добавить задачу. При щелчке эта кнопка создает новый экземпляр класса TaskRowToDo и добавляет его в arraalist toDoList. Этот класс содержит строку с текстовым полем и некоторыми кнопками.Как удалить объект (включая компоненты) из arraylist?
Это «новая задача» код кнопки:
private void drawNewBtn(){
JButton btnNew = new JButton("Nieuwe taak");
btnNew.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("New task added");
toDoList.add(new TaskRowToDo(toDoIndex+7, false, "new task", 2));
toDoList.get(toDoIndex).draw();
toDoIndex++;
frmPlanner.revalidate();
}
});
frmPlanner.getContentPane().add(btnNew, "cell 3 12");
}
В конце TaskRowToDo есть кнопка «удалить». Эта кнопка должна удалить строку из списка toDoList и удалить эту строку с экрана.
Ниже «удалить» код кнопки:
btnRemoveToDo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("To Do removed");
toDoIndex--;
toDoList.remove(toDoIndex);
frmPlanner.revalidate();
}
});
Кнопка удаляет экземпляр TaskRowToDo из ToDoList, но он по-прежнему отображается на экране и компоненты даже работать. Так что это не совсем удалено. Я пробовал использовать revalidate() и repaint(), но безрезультатно. В качестве теста я попробовал frmPlanner.removeAll(), и даже это не очищает экран (однако компоненты больше не работают).
Как удалить эту одну строку, включая ее компоненты, и очистить это пространство на экране?
Оформить свой код в github или где-нибудь, в противном случае он не кажется ясным для всех. –
@ РоманГуйван Нет! Вопрос должен быть опубликован с помощью [MCVE ] (http://stackoverflow.com/help/mcve). – user1803551
Дайте еще какой-нибудь код, потому что я не знаю, какой тип toDoList, TaskRowToDo, frmPlanner. – Victor1125