Complementando um componente Data

4 respostas
CarlosFontana

Boa tarde pessoal, tenho um componente MinhaData que é utilizado em várias telas, estou tentando fazer com que ele pegue a data do sistema e preencha o campo “Data” que está presente em todas as telas da minha aplicação, mas não estou conseguindo, alguém tem uma ideia de como posso fazer?

package Componentes;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.swing.JOptionPane;
import javax.swing.text.MaskFormatter;

public class MinhaData extends MeuJFormattedTextField {

    public GregorianCalendar data = new GregorianCalendar();

    public MinhaData(String dica, boolean obrigatorio) {
        super(dica, obrigatorio, 6);
        try {
            MaskFormatter mf = new MaskFormatter("##/##/####");
            mf.setValidCharacters("[telefone removido]");
            mf.install(this);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Não foi possível Data");
        }
    }

    @Override
    public boolean eValido() {
        try {
            if (getText().trim().length() != 10) {
                return false;
            }
            SimpleDateFormat sf = new SimpleDateFormat("dd/MM/yyyy");
            sf.setLenient(false);
            Date data = sf.parse(getText());
            return true;
        } catch (Exception e) {
            return false;
        }
    }

    public boolean eVazio() {
        if (getText().equals("  /  /    ")) {
            return true;
        } else {
            return false;
        }
    }

    public void setText(Date date) {
        setText(new SimpleDateFormat("dd/MM/yyyy").format(data));
    }

    public Date getValor() {
        try {
            return (Date) new SimpleDateFormat("dd/MM/yyyy").parse(getText());
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Não foi possivel formatar a data.");
            return null;
        }
    }
}

4 Respostas

rafaelvascon

Não sei se é a maneira mais correta de fazer isso mas funciona:

Date date = new Date(System.currentTimeMillis());
leonardobhbr

Não entendi muito bem vc quer saber como pega a data atual?

System.out.println(new SimpleDateFormat("dd/MM/yyyy").format(new Date()));
CarlosFontana

Exemplo, quando eu instanciar o campo Data em uma tela qualquer:

private MinhaData campoData = new MinhaData("Data", true);

Assim que acessar uma tela de cadastro por exemplo, o campo “Data” seja preenchido automaticamente.

CarlosFontana

Bom eu consegui fazendo dessa forma: campoData.setText(new SimpleDateFormat(“dd/MM/yyyy”).format(new Date()));, mas dessa forma terei que implementar essa linha no metodo incluir() que eu tenho por todas as classes de cadastro, o objetivo é trazer a data do componente “minhaData” mas não sei como faço.

Criado 20 de outubro de 2011
Ultima resposta 24 de out. de 2011
Respostas 4
Participantes 3