У меня проблемы с моим кодом.Эта кнопка delete
предназначена для удаления объекта типа Employee
из ArrayList emp
.Программа получает данные от пользователя в формате TextField
delUsername
, и этим вводом будет имя пользователя Сотрудника, которое необходимо удалить.getUsername
- это метод получения класса User
, который расширяется Employee
.
delete.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent arg0) {
for(Employee x : rw.readEmployee()){
Iterator itr = rw.readEmployee().iterator();
while(itr.hasNext()){
Employee e = (Employee) itr.next();
if(delUsername.getText().equals(x.getUsername())){
itr.remove();
}
}
(new AdminView(admin)).show(st);
st.show();
}
}});
Компилятор выполнит код и все будет работать нормально, без ошибок.Тем не менее, элемент не будет удален.Как я могу сделать эту работу?
private File fUser;
private ArrayList<Employee> emp
public ArrayList<Employee> readEmployee() {
try {
FileInputStream fis = new FileInputStream(fUser);
ObjectInputStream ois = new ObjectInputStream(fis);
emp = (ArrayList<Employee>) ois.readObject();
ois.close();
} catch (FileNotFoundException e) {
System.err.println("File not Found!!!");
} catch (ClassNotFoundException e) {
System.err.println("Class not Found!!!");
} catch (IOException e) {
System.err.println("File not accessable!!!");
}
return emp;
}