package FormatTest; import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.DocumentFilter; /** * Filtru ce nu da voie sa introduci cifre cu minus * @author Dan * */ public class IntFilter extends DocumentFilter { public void insertString(FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException { StringBuilder builder = new StringBuilder(string); for(int i = builder.length()-1; i>=0 ; i--) { int cp = builder.codePointAt(i); if(!Character.isDigit(cp) && cp != '-') { builder.deleteCharAt(i); if(Character.isSupplementaryCodePoint(cp)) { i--; builder.deleteCharAt(i); } } } super.insertString(fb, offset,builder.toString(), attr); } public void replace(FilterBypass fb, int offset, int length, String string, AttributeSet attrs) throws BadLocationException { if (string != null) { StringBuilder builder = new StringBuilder(string); for(int i = builder.length() -1 ; i>=0 ; i--) { int cp = builder.codePointAt(i); if(!Character.isDigit(cp) && cp!= '-') { builder.deleteCharAt(i); if(Character.isSupplementaryCodePoint(cp)) { i--; builder.deleteCharAt(i); } } } string = builder.toString(); } super.replace(fb, offset, length, string, attrs); } }