好的,所以我试图从我的数组中删除一个对象,每个对象都有一个用户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 {
}
}
答案 0 :(得分:2)
我相信你不应该使用数组索引作为对象id
,而应该在对象本身维护这个属性。类似的东西:
public class Patient {
private int id;
// getter and setter for id
// rest of the class
}
答案 1 :(得分:0)
您正在谈论的Object
,在其中再保留一个名为index
的属性。将此对象添加到数组时,将Object.index
设置为数组索引。
现在对数组做任何你想做的事。但在显示阵列时。这样做
Object.index Object