maskFormatter

7 respostas
T

bem galera eu gostaria de criar uma classe para deixar meu formulário com mascara, porém eu tenho vários formulários e gostaria de saber como eu faço para criar uma classe com as mascaras e leva-las até meus formulários.

Ex.: nesta primeira classe eu defino a mascara

import javax.swing.text.MaskFormatter;

import javax.swing.JFormattedTextField;

import java.text.ParseException;

public class Classedeformulario {
private MaskFormatter maskFormatter;

private void initComponents() {

try {
	maskFormatter = new MaskFormatter("## / ## / ##");
	maskFormatter.setPlaceholderCharacter('_');
	} catch( ParseException e ) {}

	
	}

}

nesta segunda eu tenho meu formulário que eu vou usar a mascara

JFormattedTextField Texto = new JFormattedTextField( maskFormatter );

como eu faço para ligar estas duas classes?

7 Respostas

_

Pode criar uma classe com métodos estáticos que retornam as máscaras:

class Masks {
    private static MaskFormatter dateMask;

    public static MaskFormatter dateMask() {
        if( dateMask == null ) { // inicializa
            dateMask = new MaskFormatter( "##/##/##" );
            dateMask.setPlaceholderCharacter( '_' );
        }

        return dateMask;
    }
}

Para usar:

JFormattedTextField texto = new JFormattedTextField( Masks.dateMask() );

Existem outras formas de inicializar as máscaras na classe Masks, esta é apenas uma delas.

T

blza mas aonde referencio qual é o arquivo que está a primeira classe?

T

Não entendi sua dúvida!

Você quer usar os metodos e um classe na outra classe reaproveitando os metodos prontos?

Ué … basta importar a classe, instancia-la e usar livremente os metodos da classe atraves do operador ponto(.) .

Era isso?

T

isso mesmo, mas não sei como se improta a classe
é no import … ?

como fica a sintaxe ?

J

Obrigado! Também estava com a mesma situação.

F

Cara eu estou usando o componente JDateChooser adiciona o arquivo jar que anexei , adiciona na Biblioteca e depois na Paleta Swing.
Aai é só clicar no componente e arrastar pro formulário, fica muito mais bonito e legal pois abre um calendariozinho pra vc selecionar a data…resolveu meu problema com as máscaras de data.

Segue também alguns métodos uteis pra vc trabalhar com Date:

//Metodo para transformar String em Data xx/xx/xxxx
    public static Date stringToDate(String dataStr) {
        SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
        Date data = null;
        try {
            data = new Date(format.parse(dataStr).getTime());
        } catch (ParseException ex) {
            Logger.getLogger(Util.class.getName()).log(Level.SEVERE, null, ex);
        }
        return data;
    }

    //Metodo para transformar Data xxxx-xx-xx em String para poder jogar no JformatedTextField xx/xx/xxxx
    public static String dateToString(java.util.Date data) {
        if(data != null){
        String dataFormatada = new SimpleDateFormat("dd/MM/yyyy").format(data);
        return dataFormatada;
        }else{
            return "";
        }
    }

    //Metodo para transformar Data dd/MM/aaaa em Data aaaa-MM-dd para poder salvar no MySql
    public static String dateToDate(java.util.Date data) {
        String dataFormatada = new SimpleDateFormat("yyyy-MM-dd").format(data);
        return dataFormatada;
    }

Falouu

J

Que componente massa!
No meu caso vai servir perfeitamente, pois em relação a usabilidade do meu sistema ela é toda baseada em mouse, e esse componente favorece!
fabio.argenton vlw!

Criado 9 de junho de 2006
Ultima resposta 20 de jul. de 2013
Respostas 7
Participantes 5