Ich möchte meine eigene Validierung für das Textfeld in Java festlegen. Angenommen, der Benutzer soll Werte wie eingeben 10d2-5, 100d2,23d5 und nicht mögenaa25-22. Ich könnte dies mit MaskFormatter tun, aber das Problem ist, dass wenn ich sein Format auf (## d #) setze, es keine dreistelligen Zahlen akzeptiert. Hier ist mein Code:
JFormattedTextField textField = new JFormattedTextField();
MaskFormatter dateMask = new MaskFormatter("##.#");
dateMask.install(textField);
Antworten:
0 für die Antwort № 1Hier ist ein InputVerifier-Beispiel, mit dem Sie beginnen sollten:
import java.text.ParseException;
import javax.swing.InputVerifier;
import javax.swing.JComponent;
import javax.swing.JFormattedTextField;
import javax.swing.JTextField;
public class Test {
public static void main(String[] args) throws ParseException
{
JTextField textField = new JFormattedTextField();
textField.setInputVerifier(new MyInputVerifier());
}
}
class MyInputVerifier extends InputVerifier {
public MyInputVerifier() {}
@Override
public boolean verify(JComponent input) {
JTextField textField = (JTextField) input;
String validate = textField.getText();
if (validate !=null /* replace with relevant tests cosde */) {
return true;
} else {
return false;
}
}
}