Bonjour,
J'ai un champ de texte (Integer prix) qui dois supporter seulement des entiers et donc je dois faire le contrôle de saisie or j'ai consulter les propositions dans le site et aucune d'elle m'a aidée.
Bonjour,
J'ai un champ de texte (Integer prix) qui dois supporter seulement des entiers et donc je dois faire le contrôle de saisie or j'ai consulter les propositions dans le site et aucune d'elle m'a aidée.
Utiliser un objet de TextFormatter sur TextField. Le text formatter doit être paramétrer avec un filtre de type UnaryOperator
voici un exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 import java.util.function.UnaryOperator; import java.util.regex.Pattern; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.TextField; import javafx.scene.control.TextFormatter; import javafx.scene.layout.StackPane; import javafx.stage.Stage; /** * * @author */ public class IntegerTextField extends Application { @Override public void start(Stage stage) throws Exception { Pattern intPattern = Pattern.compile("-?\\d*"); UnaryOperator<TextFormatter.Change> filter = change -> { if (intPattern.matcher(change.getControlNewText()).matches()) { return change; } return null; }; TextFormatter textFormatter = new TextFormatter(filter); TextField textField = new TextField(); textField.setTextFormatter(textFormatter); StackPane root = new StackPane(textField); stage.setScene(new Scene(root)); stage.show(); } public static void main(String[] args) { launch(args); } }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager