Advertisement
Guest User

Máscaras de entrada para JavaFX

a guest
Dec 8th, 2015
1,256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 15.08 KB | None | 0 0
  1.  
  2.  
  3. package javafxapplication1;
  4.  
  5. import javafx.beans.value.ObservableValue;
  6. import javafx.scene.control.DatePicker;
  7. import javafx.scene.control.TextField;
  8. import javafx.scene.input.KeyEvent;
  9.  
  10. /**
  11.  * Funções para se aplicar máscaras aos controles do JavaFX
  12.  *
  13.  * @author Paulo Henrique Luvisoto - paulobitfranca@gmail.com
  14.  */
  15. public class MascarasFX {
  16.    
  17.     public static void mascaraNumeroInteiro(TextField textField){
  18.        
  19.         textField.textProperty().addListener((ObservableValue<? extends String> observable, String oldValue, String newValue) -> {
  20.             if (!newValue.matches("\\d*")) {
  21.                 textField.setText(newValue.replaceAll("[^\\d]", ""));
  22.             }
  23.         });
  24.        
  25.     }
  26.    
  27.     public static void mascaraNumero(TextField textField){
  28.        
  29.         textField.textProperty().addListener((ObservableValue<? extends String> observable, String oldValue, String newValue) -> {
  30.             newValue = newValue.replaceAll(",",".");
  31.             if(newValue.length()>0){
  32.                 try{
  33.                     Double.parseDouble(newValue);
  34.                     textField.setText(newValue.replaceAll(",","."));
  35.                 }catch(Exception e){
  36.                     textField.setText(oldValue);
  37.                 }
  38.             }
  39.         });
  40.        
  41.     }
  42.      
  43.     public static void mascaraCEP(TextField textField){
  44.        
  45.         String val = "";
  46.        
  47.         textField.setOnKeyTyped((KeyEvent event) -> {
  48.             if("0123456789".contains(event.getCharacter())==false){
  49.                 event.consume();
  50.             }
  51.            
  52.             if(event.getCharacter().trim().length()==0){ // apagando
  53.                
  54.                 if(textField.getText().length()==6){
  55.                     textField.setText(textField.getText().substring(0,5));
  56.                     textField.positionCaret(textField.getText().length());
  57.                 }
  58.                
  59.             }else{ // escrevendo
  60.                
  61.                 if(textField.getText().length()==9) event.consume();
  62.                
  63.                 if(textField.getText().length()==5){
  64.                     textField.setText(textField.getText()+"-");
  65.                     textField.positionCaret(textField.getText().length());
  66.                 }
  67.                
  68.                
  69.             }
  70.         });
  71.  
  72.         textField.setOnKeyReleased((KeyEvent evt) -> {
  73.            
  74.             if(!textField.getText().matches("\\d-*")){
  75.                 textField.setText(textField.getText().replaceAll("[^\\d-]", ""));
  76.                 textField.positionCaret(textField.getText().length());
  77.             }
  78.         });
  79.        
  80.     }
  81.    
  82.     public static void mascaraData(TextField textField){
  83.        
  84.         textField.setOnKeyTyped((KeyEvent event) -> {
  85.             if("0123456789".contains(event.getCharacter())==false){
  86.                 event.consume();
  87.             }
  88.            
  89.             if(event.getCharacter().trim().length()==0){ // apagando
  90.                
  91.                 if(textField.getText().length()==3){
  92.                     textField.setText(textField.getText().substring(0,2));
  93.                     textField.positionCaret(textField.getText().length());
  94.                 }
  95.                 if(textField.getText().length()==6){
  96.                     textField.setText(textField.getText().substring(0,5));
  97.                     textField.positionCaret(textField.getText().length());
  98.                 }
  99.                
  100.             }else{ // escrevendo
  101.                
  102.                 if(textField.getText().length()==10) event.consume();
  103.                
  104.                 if(textField.getText().length()==2){
  105.                     textField.setText(textField.getText()+"/");
  106.                     textField.positionCaret(textField.getText().length());
  107.                 }
  108.                 if(textField.getText().length()==5){
  109.                     textField.setText(textField.getText()+"/");
  110.                     textField.positionCaret(textField.getText().length());
  111.                 }
  112.                
  113.             }
  114.         });
  115.        
  116.         textField.setOnKeyReleased((KeyEvent evt) -> {
  117.            
  118.             if(!textField.getText().matches("\\d/*")){
  119.                 textField.setText(textField.getText().replaceAll("[^\\d/]", ""));
  120.                 textField.positionCaret(textField.getText().length());
  121.             }
  122.         });
  123.        
  124.     }
  125.    
  126.     public static void mascaraData(DatePicker datePicker){
  127.        
  128.         datePicker.getEditor().setOnKeyTyped((KeyEvent event) -> {
  129.             if("0123456789".contains(event.getCharacter())==false){
  130.                 event.consume();
  131.             }
  132.            
  133.             if(event.getCharacter().trim().length()==0){ // apagando
  134.                 if(datePicker.getEditor().getText().length()==3){
  135.                     datePicker.getEditor().setText(datePicker.getEditor().getText().substring(0,2));
  136.                     datePicker.getEditor().positionCaret(datePicker.getEditor().getText().length());
  137.                 }
  138.                 if(datePicker.getEditor().getText().length()==6){
  139.                     datePicker.getEditor().setText(datePicker.getEditor().getText().substring(0,5));
  140.                     datePicker.getEditor().positionCaret(datePicker.getEditor().getText().length());
  141.                 }
  142.                
  143.             }else{ // escrevendo
  144.                
  145.                 if(datePicker.getEditor().getText().length()==10) event.consume();
  146.                
  147.                 if(datePicker.getEditor().getText().length()==2){
  148.                     datePicker.getEditor().setText(datePicker.getEditor().getText()+"/");
  149.                     datePicker.getEditor().positionCaret(datePicker.getEditor().getText().length());
  150.                 }
  151.                 if(datePicker.getEditor().getText().length()==5){
  152.                     datePicker.getEditor().setText(datePicker.getEditor().getText()+"/");
  153.                     datePicker.getEditor().positionCaret(datePicker.getEditor().getText().length());
  154.                 }
  155.                
  156.             }
  157.         });
  158.        
  159.         datePicker.getEditor().setOnKeyReleased((KeyEvent evt) -> {
  160.            
  161.             if(!datePicker.getEditor().getText().matches("\\d/*")){
  162.                 datePicker.getEditor().setText(datePicker.getEditor().getText().replaceAll("[^\\d/]", ""));
  163.                 datePicker.getEditor().positionCaret(datePicker.getEditor().getText().length());
  164.             }
  165.         });
  166.        
  167.     }
  168.    
  169.     public static void mascaraCPF(TextField textField){
  170.        
  171.         textField.setOnKeyTyped((KeyEvent event) -> {
  172.             if("0123456789".contains(event.getCharacter())==false){
  173.                 event.consume();
  174.             }
  175.            
  176.             if(event.getCharacter().trim().length()==0){ // apagando
  177.                
  178.                 if(textField.getText().length()==4){
  179.                     textField.setText(textField.getText().substring(0,3));
  180.                     textField.positionCaret(textField.getText().length());
  181.                 }
  182.                 if(textField.getText().length()==8){
  183.                     textField.setText(textField.getText().substring(0,7));
  184.                     textField.positionCaret(textField.getText().length());
  185.                 }
  186.                 if(textField.getText().length()==12){
  187.                     textField.setText(textField.getText().substring(0,11));
  188.                     textField.positionCaret(textField.getText().length());
  189.                 }
  190.                
  191.             }else{ // escrevendo
  192.                
  193.                 if(textField.getText().length()==14) event.consume();
  194.                
  195.                 if(textField.getText().length()==3){
  196.                     textField.setText(textField.getText()+".");
  197.                     textField.positionCaret(textField.getText().length());
  198.                 }
  199.                 if(textField.getText().length()==7){
  200.                     textField.setText(textField.getText()+".");
  201.                     textField.positionCaret(textField.getText().length());
  202.                 }
  203.                 if(textField.getText().length()==11){
  204.                     textField.setText(textField.getText()+"-");
  205.                     textField.positionCaret(textField.getText().length());
  206.                 }
  207.                
  208.             }
  209.         });
  210.        
  211.         textField.setOnKeyReleased((KeyEvent evt) -> {
  212.            
  213.             if(!textField.getText().matches("\\d.-*")){
  214.                 textField.setText(textField.getText().replaceAll("[^\\d.-]", ""));
  215.                 textField.positionCaret(textField.getText().length());
  216.             }
  217.         });
  218.        
  219.     }
  220.    
  221.     public static void mascaraCNPJ(TextField textField){
  222.        
  223.         textField.setOnKeyTyped((KeyEvent event) -> {
  224.             if("0123456789".contains(event.getCharacter())==false){
  225.                 event.consume();
  226.             }
  227.            
  228.             if(event.getCharacter().trim().length()==0){ // apagando
  229.                
  230.                 if(textField.getText().length()==3){
  231.                     textField.setText(textField.getText().substring(0,2));
  232.                     textField.positionCaret(textField.getText().length());
  233.                 }
  234.                 if(textField.getText().length()==7){
  235.                     textField.setText(textField.getText().substring(0,6));
  236.                     textField.positionCaret(textField.getText().length());
  237.                 }
  238.                 if(textField.getText().length()==11){
  239.                     textField.setText(textField.getText().substring(0,10));
  240.                     textField.positionCaret(textField.getText().length());
  241.                 }
  242.                 if(textField.getText().length()==16){
  243.                     textField.setText(textField.getText().substring(0,15));
  244.                     textField.positionCaret(textField.getText().length());
  245.                 }
  246.                
  247.             }else{ // escrevendo
  248.                
  249.                 if(textField.getText().length()==18) event.consume();
  250.                
  251.                 if(textField.getText().length()==2){
  252.                     textField.setText(textField.getText()+".");
  253.                     textField.positionCaret(textField.getText().length());
  254.                 }
  255.                 if(textField.getText().length()==6){
  256.                     textField.setText(textField.getText()+".");
  257.                     textField.positionCaret(textField.getText().length());
  258.                 }
  259.                 if(textField.getText().length()==10){
  260.                     textField.setText(textField.getText()+"/");
  261.                     textField.positionCaret(textField.getText().length());
  262.                 }
  263.                 if(textField.getText().length()==15){
  264.                     textField.setText(textField.getText()+"-");
  265.                     textField.positionCaret(textField.getText().length());
  266.                 }
  267.                
  268.             }
  269.         });
  270.        
  271.         textField.setOnKeyReleased((KeyEvent evt) -> {
  272.            
  273.             if(!textField.getText().matches("\\d./-*")){
  274.                 textField.setText(textField.getText().replaceAll("[^\\d./-]", ""));
  275.                 textField.positionCaret(textField.getText().length());
  276.             }
  277.         });
  278.        
  279.     }
  280.    
  281.     public static void mascaraEmail(TextField textField){
  282.        
  283.         textField.setOnKeyTyped((KeyEvent event) -> {
  284.             if("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz._-@".contains(event.getCharacter())==false){
  285.                 event.consume();
  286.             }
  287.            
  288.             if("@".equals(event.getCharacter())&&textField.getText().contains("@")){
  289.                 event.consume();
  290.             }
  291.            
  292.             if("@".equals(event.getCharacter())&&textField.getText().length()==0){
  293.                 event.consume();
  294.             }
  295.         });
  296.        
  297.     }
  298.    
  299.     public static void mascaraTelefone(TextField textField){
  300.        
  301.         textField.setOnKeyTyped((KeyEvent event) -> {
  302.             if("0123456789".contains(event.getCharacter())==false){
  303.                 event.consume();
  304.             }
  305.            
  306.             if(event.getCharacter().trim().length()==0){ // apagando
  307.                
  308.                 if(textField.getText().length()==10&&textField.getText().substring(9,10).equals("-")){
  309.                     textField.setText(textField.getText().substring(0,9));
  310.                     textField.positionCaret(textField.getText().length());
  311.                 }
  312.                 if(textField.getText().length()==9&&textField.getText().substring(8,9).equals("-")){
  313.                     textField.setText(textField.getText().substring(0,8));
  314.                     textField.positionCaret(textField.getText().length());
  315.                 }
  316.                 if(textField.getText().length()==4){
  317.                     textField.setText(textField.getText().substring(0,3));
  318.                     textField.positionCaret(textField.getText().length());
  319.                 }
  320.                 if(textField.getText().length()==1){
  321.                     textField.setText("");
  322.                 }
  323.                
  324.             }else{ //escrevendo
  325.                
  326.                 if(textField.getText().length()==14) event.consume();
  327.                
  328.                 if(textField.getText().length()==0){
  329.                     textField.setText("("+event.getCharacter());
  330.                     textField.positionCaret(textField.getText().length());
  331.                     event.consume();
  332.                 }
  333.                 if(textField.getText().length()==3){
  334.                     textField.setText(textField.getText()+")"+event.getCharacter());
  335.                     textField.positionCaret(textField.getText().length());
  336.                     event.consume();
  337.                 }
  338.                 if(textField.getText().length()==8){
  339.                     textField.setText(textField.getText()+"-"+event.getCharacter());
  340.                     textField.positionCaret(textField.getText().length());
  341.                     event.consume();
  342.                 }
  343.                 if(textField.getText().length()==9&&textField.getText().substring(8,9)!="-"){
  344.                     textField.setText(textField.getText()+"-"+event.getCharacter());
  345.                     textField.positionCaret(textField.getText().length());
  346.                     event.consume();
  347.                 }
  348.                 if(textField.getText().length()==13&&textField.getText().substring(8,9).equals("-")){
  349.                     textField.setText(textField.getText().substring(0,8)+textField.getText().substring(9,10)+"-"+textField.getText().substring(10,13)+event.getCharacter());
  350.                     textField.positionCaret(textField.getText().length());
  351.                     event.consume();
  352.                 }
  353.                
  354.             }
  355.            
  356.         });
  357.        
  358.         textField.setOnKeyReleased((KeyEvent evt) -> {
  359.            
  360.             if(!textField.getText().matches("\\d()-*")){
  361.                 textField.setText(textField.getText().replaceAll("[^\\d()-]", ""));
  362.                 textField.positionCaret(textField.getText().length());
  363.             }
  364.         });
  365.                
  366.     }
  367.    
  368. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement