Data, apenas numeros e JTextField  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
Hempx
JavaEvangelist
[Avatar]

Membro desde: 18/04/2003 03:42:08
Mensagens: 356
Localização: Belo Horizonte
Offline

Opa....
Minha divida eh o seguinte:

Preciso ter um campo para ler uma data, ex: dd/mm/aaaa e tambem de um JtextField que aceite apenas numeros.

Como fazer para que um JTextField fico por exemplo com um formato assim: ... /.../.........
sou seja... ja fica aparentemente mostrando que eh um campo de data, ae o cara escreve primeiro o dia ja pula para mes... etc...


E como limitar um JTextField para que aceite apenas numero??? Faço isso com KeyListener?? Com setDocument( new MeuPlainDocument() ) ) ....???

alguem tem alguma sugestão melhor para esse tipo de coisa
Obrigado.
[MSN] [ICQ]
leonardom
Virtual Machine Man
[Avatar]

Membro desde: 23/02/2003 11:41:23
Mensagens: 679
Localização: Anywhere
Offline

Dá uma olhada da class JFormattedTextField:

http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JFormattedTextField.html

E tbem na classe MaskFormatter:

http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/text/MaskFormatter.html

"If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas."

George Bernard Shaw (1856 - 1950) - Irish dramatist - Nobel Prize of Literature, 1925

blog: http://leonardom.wordpress.com
http://www.insidecode.com.br
[Email] [MSN]
Hempx
JavaEvangelist
[Avatar]

Membro desde: 18/04/2003 03:42:08
Mensagens: 356
Localização: Belo Horizonte
Offline



Qual a diferenca em usar mascara ou Document???
Parecem ser bem parecidos....
[MSN] [ICQ]
leonardom
Virtual Machine Man
[Avatar]

Membro desde: 23/02/2003 11:41:23
Mensagens: 679
Localização: Anywhere
Offline

Hempx wrote:
Qual a diferenca em usar mascara ou Document???
Parecem ser bem parecidos....


Só que com Document você tem que fazer todo o tratamento, enquanto com as classes JFormattedTextField e MaskFormatter já fazem isso por você.

"If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas."

George Bernard Shaw (1856 - 1950) - Irish dramatist - Nobel Prize of Literature, 1925

blog: http://leonardom.wordpress.com
http://www.insidecode.com.br
[Email] [MSN]
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Tem como eu "setar" um MaskFormatter para o JFormattedTextField depois que ele foi criado?

ex:

JFormattedTextField j1 = new JFormattedTextField();
j1.setFormatter( new MaskFormatter("###.##") );

Tem como?

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
leonardom
Virtual Machine Man
[Avatar]

Membro desde: 23/02/2003 11:41:23
Mensagens: 679
Localização: Anywhere
Offline

danieldestro wrote:Tem como eu "setar" um MaskFormatter para o JFormattedTextField depois que ele foi criado?

ex:

JFormattedTextField j1 = new JFormattedTextField();
j1.setFormatter( new MaskFormatter("###.##") );

Tem como?


Daniel tem sim, é só usar o método install da classe MaskFormatter.

JFormattedTextField j1 = new JFormattedTextField();
new MaskFormatter("###.##").install( j1 );

"If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas."

George Bernard Shaw (1856 - 1950) - Irish dramatist - Nobel Prize of Literature, 1925

blog: http://leonardom.wordpress.com
http://www.insidecode.com.br
[Email] [MSN]
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Na verdade o que eu quero é que meu campo (JFormattedTextField) tenha a seguinte máscara: __/__/____, e se possível apenas receba uma dáta válida, segundo a máscara passada (ex: dd/MM/yyyy).

Algum código de exemplo? To apanhando aqui.

Creio que tem que usar o PlainDocument, né? Isso não seria arrumado no jdk 1.4.2?

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
leonardom
Virtual Machine Man
[Avatar]

Membro desde: 23/02/2003 11:41:23
Mensagens: 679
Localização: Anywhere
Offline

É Daniel a máscara não seria problema, mas a validação vc tem que desenlvolver. No MaskFormat tem apenas como vc configurar para aceitar somente números, mas para validar tem que ser na unha. Agora se isso seria arrumado numa futura versão, só os deuses sabem, vamos torcer que sim.

"If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas."

George Bernard Shaw (1856 - 1950) - Irish dramatist - Nobel Prize of Literature, 1925

blog: http://leonardom.wordpress.com
http://www.insidecode.com.br
[Email] [MSN]
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Mas esse JFormattedTextField é MUITO chato....
eu coloquei a máscara SimpleDateFormat("dd/MM/yyyy"), e quando eu digito ele não aparece a máscara no campo e quando o formato é inválido ou a data some ou ele coloca outra... WEIRDDD

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
luiz_ross
GUJ Master
[Avatar]

Membro desde: 25/09/2002 16:38:34
Mensagens: 1110
Localização: Salto, SP
Offline

Um JTextField customizado que só aceita numeros

"Quanto mais inteligente é um homem, mais originalidade ele descobre nos homens. Pessoas ordinárias não enxergam nenhuma diferença entre eles"
[MSN]
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Obrigado, bem legal.
mas ninguem tem nada usando JFormattedTextField>>>

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
dukejeffrie
Virtual Machine Man
[Avatar]

Membro desde: 21/08/2002 03:53:28
Mensagens: 661
Offline

Cara, faz uma busca aqui no GUJ por FixedLengthDocument (ou variações) e PlainDocument.

Vc pode colocar uma máscara no seu JFormattedTextField e associar a ele um Document que só aceita números e que automaticamente tem nas posições 3 e 6 as barrinhas...

eu não disse que seria divertido... : ))))

[]s!

Brevity is the soul of wit
[Email] [WWW] [MSN] [ICQ]
ddpcc
JavaChild

Membro desde: 22/08/2003 10:38:52
Mensagens: 128
Offline

private JFormattedTextField TDtNascto;

try {
MaskFormatter format = new MaskFormatter("##/##/####");
TDtNascto = new JFormattedTextField(format);
TDtNascto.setBounds(110,80,80,20);
this.getContentPane().add(TDtNascto);
}
catch(Exception ex)
{}
[ICQ]
marcel.tanuri
What is classpath?
[Avatar]

Membro desde: 10/09/2010 01:44:18
Mensagens: 6
Offline

caso resolvido no seguinte forum:

http://www.guj.com.br/java/216843-inserir-barra-automaticamente-no-campo-data
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team