Je travaille actuellement avec PropertyChangeListeners et je veux savoir s'il est conseillé de déclencher un changement de propriété à chaque fois qu'un objet est ajouté (ou supprimé, d'ailleurs) à une propriété indexée comme une ArrayList.Ajout d'un élément à une propriété indexée - PropertyChangeSupport
public class SimpleBean implements Serializable
{
private ArrayList<Matrix> mats;
private PropertyChangeSupport pcs = new PropertyChangeSupport(this);
public SimpleBean()
{...}
public void addMat(Matrix m)
{
pcs.firePropertyChange("mats", null, m); // I'm having trouble with the parameters
mats.add(m);
}
}
Je lisais les tutoriels PropertyChangeListener et il semblait qu'il convenait de tirer un changement de propriété chaque fois changé la valeur d'une propriété liée. Eh bien, je ne savais pas si cela signifiait que je devrais déclencher un changement de propriété chaque fois qu'une propriété a été modifiée par signifie ou seulement lorsque la propriété (ou un élément de cette propriété) a été strictement définie/réaffectée à une valeur différente .
Dans mon programme, il serait très pratique si plusieurs classes pouvaient changer à chaque fois qu'un élément est supprimé ou ajouté à la matrice ArrayList, et j'ai pensé qu'un PropertyChangeListener pourrait m'aider à cet égard. Veuillez me faire savoir si cette méthode est déconseillée et s'il y a une autre façon que les autres classes peuvent écouter et répondre à la suppression/ajout aux propriétés indexées.
En regardant le contrat, vous devez envoyer des «tapis» avant modification et des «tapis» après modification. Je doute que ce soit ce que tu veux. Vous pouvez utiliser 'fireIndexedPropertyChange' plutôt. – KDM
D'accord, mais si j'essaie fireIndexedPropertyChange, 'pcs.fireIndexedPropertyChange (" mat ", mats.size(), null, m)' est-il un remplacement approprié? Étant donné que tout ce que j'ai appris sur la modification des propriétés liées concerne l'affectation d'une propriété à quelque chose de différent plutôt que l'ajout ou la suppression d'une propriété, j'ai du mal à paramétrer cette méthode. @KDM – novice