Hallo,
ich hatte schon einen thread erstellt, doch da kam kein Ergebnis bei raus.
Ich will in meinem Eingabe TF nur Zahlen und einen Punkt zulassen.
Hier ist meine DoubleFilter Klasse:
Hier mein Eingabe TextFeld:
Bisher Funktionieren "die Zahlen" aber "der Punkt" nicht(kann keinen Punkt eingeben).
ich hatte schon einen thread erstellt, doch da kam kein Ergebnis bei raus.
Ich will in meinem Eingabe TF nur Zahlen und einen Punkt zulassen.
Hier ist meine DoubleFilter Klasse:
Java:
package Subclasses;
import javax.swing.text.*;
public class DoubleFilter extends DocumentFilter{
@Override
public void insertString(DocumentFilter.FilterBypass fb, int offset, String text, AttributeSet attr)
throws BadLocationException {
if (isNumPoint(text)) {
super.insertString(fb, offset, text, attr);
}
}
@Override
public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attr)
throws BadLocationException {
if (isNumPoint(text)) {
super.replace(fb, offset, length, text, attr);
}
}
private boolean isNumPoint(String text) {
return text != null && text.matches("^(\\d+(\\.\\d+)?)$");
}
}
Java:
eingabeKwh = new JTextField();
eingabeKwh.setBackground(UIManager.getColor("Button.background"));
eingabeKwh.setPreferredSize(new Dimension(120, 20));
AbstractDocument doc = (AbstractDocument) eingabeKwh.getDocument();
doc.setDocumentFilter(new DoubleFilter());
gbl(1, 9, 1, 1);
add(eingabeKwh, gbc);
Bisher Funktionieren "die Zahlen" aber "der Punkt" nicht(kann keinen Punkt eingeben).