わかりましたので、配列からオブジェクトを削除しようとしています。各オブジェクトにはユーザー ID があるため、配列の 0 インデックスは ID が 1 のオブジェクトを保持します。たとえば、IDが2のオブジェクトを削除すると、配列の1つのインデックスを削除し、モデルをやり直して表示したいとします。モデルに 1:blah を表示させ、次に 3:Blah を表示させ、削除されたものを除外します。
private void DeleteButtonActionPerformed(java.awt.event.ActionEvent evt) {
// arrays index not working when deleted
int reply = JOptionPane.showConfirmDialog(null, "Are you sure?","Delete Patient: " +
NameTextField.getText(), JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION) {
int Num = Integer.parseInt(IDTextField.getText());
int Num1 = Num--;
for(Patient s: PatientList)
{
if(Num == s.getAccountNumber())
{
PatientList.remove(Num1);
break;
}
}
DefaultListModel PatientListModel = new DefaultListModel();
for(Patient s: PatientList)
{
PatientListModel.addElement(s.getAccountNumber() + "-" + s.getName());
}
PatientJList.setModel(PatientListModel);
//delete procedures for that id
JOptionPane.showMessageDialog(null, "Patient: " + NameTextField.getText() + "
Deleted!");
NameTextField.setText("");
AgeTextField.setText("");
AddressTextField.setText("");
SexGroup.clearSelection();
PhoneTextField.setText("");
IDTextField.setText("");
PatientJList.clearSelection();
}
else {
}
}