Hallo liebe Forengemeinde,
folgender Code liegt vor:
Hintergrund:
Ich habe ein Textfeld in der folgende Eingabemöglichkeiten gegeben sind: 5.0 oder 55.0 oder 555.0
Nun kann ich aber gar nichts mehr in das Textfeld reinschreiben. Was mache ich falsch?
folgender Code liegt vor:
Java:
int MAX = 5;
JTextField textfield = new JTextField(MAX);
((AbstractDocument) textfield.getDocument()).setDocumentFilter(new DocumentSizeFilter(MAX, "[0-9]."));
Java:
import javax.print.*;
import javax.swing.text.*;
import java.awt.*;
public class DocumentSizeFilter extends DocumentFilter
{
private final int maxCharacters;
private final String pattern;
public DocumentSizeFilter(final int maxChars, final String pattern)
{
maxCharacters = maxChars;
this.pattern = pattern;
}
public void replace(FilterBypass fb, int offs, int length, String str, AttributeSet a) throws BadLocationException
{
if(str.matches(pattern) && (fb.getDocument().getLength() + str.length() - length) <= maxCharacters)
{
super.replace(fb, offs, length, str, a);
}
else
{
Toolkit.getDefaultToolkit().beep();
}
}
}
Hintergrund:
Ich habe ein Textfeld in der folgende Eingabemöglichkeiten gegeben sind: 5.0 oder 55.0 oder 555.0
Nun kann ich aber gar nichts mehr in das Textfeld reinschreiben. Was mache ich falsch?