Utilisation de SwingPropertyChangeSupport pour mettre à jour dynamiquement JTextArea
Dans votre extrait de code, vous êtes confronté à un problème où le JTextArea représentant le tableau ne le fait pas mise à jour après que des modifications ont été apportées à l'aide de la boîte de dialogue de saisie. Cela se produit car vous n'avez pas correctement notifié SwingPropertyChangeSupport que la propriété a changé.
Pour résoudre ce problème, modifions la classe ArrayForUpdating :
<code class="java">public class ArrayForUpdating { // Existing code... public void setArrayData(int a, int memData) { // Existing code... // Fire the property change event setArrayyDisplayString(); firePropertyChange(BOUND_PROPERTY, oldValue, newValue); } }</code>
Dans la méthode setArrayData, après avoir mis à jour le array et générant la nouvelle chaîne d'affichage, nous déclenchons désormais explicitement un événement de changement de propriété à l'aide de firePropertyChange. Ceci informe tous les auditeurs enregistrés que BOUND_PROPERTY a été modifié.
En mettant à jour la propriété de cette manière, la classe GuiForUpdate sera informée du changement et mettra à jour le JTextArea en conséquence.
Voici le classe GuiForUpdate mise à jour :
<code class="java">public class GuiForUpdate extends JFrame implements ActionListener { // Existing code... /** * Adds a display area for array */ public void layoutDisplay() { // Existing code... arrayForUpdate.addPropertyChangeListener(new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent pcEvt) { if (pcEvt.getPropertyName().equals( ArrayForUpdating.BOUND_PROPERTY)) { mList = (pcEvt.getNewValue().toString()); displayOutput.setText(mList); } } }); } }</code>
Dans la méthode layoutDisplay, nous avons mis à jour l'écouteur de changement de propriété pour mettre à jour la zone de texte displayOutput lorsque BOUND_PROPERTY change.
En incorporant ces modifications, le JTextArea reflétera désormais dynamiquement toutes les modifications apportées au tableau via la boîte de dialogue de saisie.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!