Я пытаюсь создать приложение Swing в java, и у меня есть список, и я хочу найти объект в списке и хочу удалить переданный объект.
При нажатии кнопки обновления тогда это действие происходит в моем приложении SWING:
private void updateBtnActionPerformed(java.awt.event.ActionEvent evt) {
Branch b=new Branch(address.getText(),email.getText(),name.getText(),webadd.getText(),phonenum.getText());
Secretary s=new Secretary(sec.getId(),username.getText(),
password.getText(),b);
System.out.println("id is"+sec.getId());
boolean result=secDao.delete(sec);
if(result){
secDao.insert(s);
JOptionPane.showMessageDialog(null,"Update Successful");
fetch();
}
else{
JOptionPane.showMessageDialog(null,"Cannot Update");
}
}
Я создаю новый объект Secretary s
и sec
- это объект, который я получил из Jtable в разгаре.
Итак , поскольку я не использую какую-либо базу данных, которую я читаю и записываю в файл, мой старый объект sec
необходимо удалить, а новый объект s
нужно вставить.
Итак, в моем SecretDAOImpl . java class У меня есть функция удаления, работающая как:
@Override
public boolean delete(Secretary t) {
System.out.print("Object passed is"+t);
List<Secretary> secList=getAll();
// List<Secretary> toBeRemoved=new ArrayList<>();
// toBeRemoved.add(t);
// secList.removeAll(toBeRemoved);
// System.out.println("secList after remove is"+secList);
for(int i=0;i<secList.size();i++){
System.out.println("From delete me"+secList.indexOf(t));
}
// for(int i=0;i<secList.size();i++){
// Secretary s=secList.get(i);
// if(s.getId()==t.getId()){
// secList.remove(t);
// }
// }
File file = new File(filename);
if(file.delete())
{
System.out.println("File deleted successfully");
insertAgain(secList);
return true;
}
else
{
System.out.println("Failed to delete the file");
}
return false;
}
Я пробовал эту прокомментированную строку, но объект не удаляется из списка. Мой метод getAll();
возвращает мне Список:
@Override
public List<Secretary> getAll() {
try {
FileInputStream file = new FileInputStream(filename);
ObjectInputStream reader = new ObjectInputStream(file);
List<Secretary> secList=new ArrayList<>();
while (true) {
try {
Secretary obj = (Secretary)reader.readObject();
System.out.println(obj);
secList.add(obj);
} catch (Exception ex) {
System.err.println("end of reader file ");
break;
}
}
System.out.println("secList is"+secList);
file.close();
reader.close();
return secList;
} catch (Exception ex) {
System.err.println("failed to read " + filename + ", "+ ex);
}
return null;
}
Итак, в моей консоли я вижу:
id is2
Object passed isSecretary{id=2, userName=asdas, password=adad, branch=com.npsc.entity.Branch@5f8ea9f6}Secretary{id=2, userName=asdas, password=adad, branch=com.npsc.entity.Branch@305b8802}
secList is[Secretary{id=2, userName=asdas, password=adad, branch=com.npsc.entity.Branch@305b8802}]
From delete me-1
File deleted successfully
insert called
end of reader file
end of reader file
Secretary{id=2, userName=asdas, password=adad, branch=com.npsc.entity.Branch@47292e6d}
secList is[Secretary{id=2, userName=asdas, password=adad, branch=com.npsc.entity.Branch@47292e6d}]
Мой объект не удаляется из списка? Почему это происходит?