Bonjour les Developpeur.
J'ai une fenêtre contenant un champ pour ecrire une adresse Ip. J'ai utilisé pour cela JFormattedTextField. Mais le problème comment formater son continu pour qu'il permet d'ecrire cette adresse. Après de long recherche j'ai trouvé ce code qui permet de formater le continue d'un simple jtextfield:if se fait de mettre dans un evenement Key_Pressed d'un jtextfield:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 static final Pattern pat = Pattern.compile("\\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\." + "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\." + "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\." + "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b"); static boolean checkString(String s) { Matcher m = pat.matcher(s); return m.matches(); }
Mais ce dernier ne permet pas d'introduire automatiquement les points comme celle dans les champs standard d'une adresse Ip.
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 private void jTextFieldIpKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: int key =evt.getKeyCode(); if(key==java.awt.event.KeyEvent.VK_ENTER)//test sur boutton entrer { { if ((jTextFieldIp.getText().length()!=0)&&(checkString(jTextFieldIp.getText()))) { this.NPort_IP =jTextFieldIp.getText(); jTextFieldPort.requestFocus(); } else { JOptionPane.showMessageDialog(this, "Is not valid Ip! "); jTextFieldIp.setText(""); } } } }
Merci d'avance.
Partager