Bien qu'intuitif, l'utilisation d'un écouteur de clé pour valider la saisie numérique dans un JTextField est inadéquate. Au lieu de cela, une approche plus complète consiste à utiliser un DocumentFilter.
Un DocumentFilter surveille les modifications apportées à un document, offrant ainsi un meilleur contrôle sur la validation des entrées. Il vous permet de :
Un exemple d'implémentation de MyIntFilter utilisant DocumentFilter :
class MyIntFilter extends DocumentFilter { @Override public void insertString(FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException { Document doc = fb.getDocument(); StringBuilder sb = new StringBuilder(); sb.append(doc.getText(0, doc.getLength())); sb.insert(offset, string); if (test(sb.toString())) { super.insertString(fb, offset, string, attr); } else { // warn the user and don't allow the insert } } private boolean test(String text) { try { Integer.parseInt(text); return true; } catch (NumberFormatException e) { return false; } } ... // Other overridden methods for replace and remove }
En utilisant un DocumentFilter, vous pouvez restreindre efficacement la saisie de JTextField aux entiers, garantissant que seules les données valides sont saisies . Il s'agit d'une approche robuste et fiable qui répond aux limites des auditeurs clés.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3