السلام عليكم ورحمة الله وبركاته
حاولت أن أقوم باستبدال الأرقام المدخلة على JTextField بأرقام عربية عن طريق استخدام الـ DocumentListener، كما هو موضح بالشفرة التالية:
txtName.getDocument().addDocumentListener(this);
...
public void insertUpdate(DocumentEvent e){setLabel();}
public void removeUpdate(DocumentEvent e){setLabel();}
public void changedUpdate(DocumentEvent e){}
public void setLabel()
{
String s = txtName.getText();
s = s.replace('0','\u0660');
s = s.replace('1','\u0661');
s = s.replace('2','\u0662');
s = s.replace('3','\u0663');
s = s.replace('4','\u0664');
s = s.replace('5','\u0665');
s = s.replace('6','\u0666');
s = s.replace('7','\u0667');
s = s.replace('8','\u0668');
s = s.replace('9','\u0669');
s = s.replace('.',',');
txtName.setText(s);
}ولكن يظهر لي خطأ عند السطر التالي:
txtName.setText(s);
وهذا هو الخطأ:
Exception occurred during event dispatching: java.lang.IllegalStateException: Attempt to mutate in notification



