/**
* Ne pas accepter que des caractères numérique dans un JTextField.
* On redéfinit le document associé à un JTextField.
* Un document est un conteneur de données, utilisé par Swing pour représenter
* les données associées à des composants destinés à acceuillir du texte.
*/
import javax.swing.text.PlainDocument;
import javax.swing.text.BadLocationException;
class NumericDocument extends PlainDocument {
public void insertString (int offs, String str, AttributeSet att)
throws BadLocationException {
if (str.matches ("[0-9]*")) {
super.insertString (offs, str, att);
}
}
}
/**
* Tester notre nouveau type de document.
*/
import javax.swing.JTextField;
// ...
JTextField textField = new JTextField (30);
// Associer un type de document avec setDocument ()
textField.setDocument (new NumericDocument ());
// ...