SAE21_2024/Sudoku/JTextFieldCharLimit.java

25 lines
792 B
Java

import javax.swing.text.PlainDocument;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
public class JTextFieldCharLimit extends PlainDocument
{
private int max;
JTextFieldCharLimit(int max) {
super();
this.max = max;
}
public void insertString(int offset, String text, AttributeSet attr) throws BadLocationException {
if (text == null){
return;
}
StringBuilder sb = new StringBuilder();
sb.append(getText(0, getLength()));
sb.insert(offset, text);
/* Vérifier si le texte ne contient que des chiffres de 1 à 9 et si il ne depasse pas 4 caractères */
if (sb.length() <= max && sb.toString().matches("[1-9]*")) {
super.insertString(offset, text, attr);
}
}
}