| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 08:00:16
|
Gobain
JavaTeenager
![[Avatar]](/images/avatar/80cd71aee683e52c643ad59a03524806.png)
Membro desde: 27/06/2007 13:10:28
Mensagens: 176
Localização: Curitiba
Offline
|
Olá pessoas,
Eu criei este tópico pq gostaria de saber como vcs fazem a validação de formulários swing, de repente algumas dicas e tal. Qd digo validação acho q todos entendem q é algo como garantir q o os campos obrigatórios sejam preenchidos e da forma correta.
Não sei se existe algum framework para facilitar este tipo de ação ou não, ou algum componente pra isso. A maioria das minhas validações faço na mão mesmo, algo como:
E aí, q vcs fazem?
This message was edited 2 times. Last update was at 17/10/2008 08:01:43
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 08:12:33
|
dmandrak
JavaGuru
![[Avatar]](/images/avatar/49c5e16157922ea55efd28991c653dc0.jpg)
Membro desde: 29/05/2008 22:41:53
Mensagens: 247
Offline
|
Gobain wrote:Olá pessoas,
Eu criei este tópico pq gostaria de saber como vcs fazem a validação de formulários swing, de repente algumas dicas e tal. Qd digo validação acho q todos entendem q é algo como garantir q o os campos obrigatórios sejam preenchidos e da forma correta.
Não sei se existe algum framework para facilitar este tipo de ação ou não, ou algum componente pra isso. A maioria das minhas validações faço na mão mesmo, algo como:
E aí, q vcs fazem?
Cara, tem uma parada - que eu nao lembro o nome, por isso chamei de parada - que eu usei num aplicativo que usava rich faces...
Não sei se vai funcionar pra vc pq eram parâmetros xml.
Nos campos tinham coisas como maxintegerdigits, minintegerdigits, intergeronly, allownull e coisas do tipo.
No fundo acho que é o que vc busca, mas exatamente para swing nao sei...
|
é a vida... |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 08:20:38
|
renzonuccitelli
GUJ Master
Membro desde: 17/09/2008 12:58:32
Mensagens: 1133
Offline
|
Eu uso o SwingBean. Ele já gera a tela automáticamente baseado em uma classe e arquivo XML e faz a validadção tb. A validação dele se faz de duas maneiras: Via mascara ou via regex.
Dá uma olhada: http://swingbean.sourceforge.net/
This message was edited 1 time. Last update was at 17/10/2008 08:21:01
|
Renzo Nuccitelli
Engenheiro de Computação - ITA
http://nuccitec.com.br/
http://blog.nuccitec.com.br/
http://jcoltrane.sf.net
http://jfera.nuccitec.com.br/
http://code.google.com/p/webapp-ce/
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 08:38:07
|
Gobain
JavaTeenager
![[Avatar]](/images/avatar/80cd71aee683e52c643ad59a03524806.png)
Membro desde: 27/06/2007 13:10:28
Mensagens: 176
Localização: Curitiba
Offline
|
dmandrak wrote:Cara, tem uma parada - que eu nao lembro o nome, por isso chamei de parada  - que eu usei num aplicativo que usava rich faces...
Não sei se vai funcionar pra vc pq eram parâmetros xml.
Nos campos tinham coisas como maxintegerdigits, minintegerdigits, intergeronly, allownull e coisas do tipo.
No fundo acho que é o que vc busca, mas exatamente para swing nao sei...
Então, eu vi que parecido com isso tem o InputVerifier, mas não é com xml (pelo menos não vi isso).
renzonuccitelli wrote:Eu uso o SwingBean. Ele já gera a tela automáticamente baseado em uma classe e arquivo XML e faz a validadção tb. A validação dele se faz de duas maneiras: Via mascara ou via regex.
Dá uma olhada: http://swingbean.sourceforge.net/
O SwingBean é bacana, mas posso usá-lo só pra fazer a validação?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 09:10:12
|
renzonuccitelli
GUJ Master
Membro desde: 17/09/2008 12:58:32
Mensagens: 1133
Offline
|
Gobain,
Não da pra usar ele só para fazer validação não. Mas qdo nao uso ele, uso a idéia. Extendo a text field colocando na classe um pattern. Aí coloco um método verify para validar o campo baseado em uma regex do campo. Assim, para validações diferentes só criar a refex apropriada, em vez de implementar o código todo na mão.
This message was edited 1 time. Last update was at 17/10/2008 09:10:52
|
Renzo Nuccitelli
Engenheiro de Computação - ITA
http://nuccitec.com.br/
http://blog.nuccitec.com.br/
http://jcoltrane.sf.net
http://jfera.nuccitec.com.br/
http://code.google.com/p/webapp-ce/
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 09:29:54
|
Gobain
JavaTeenager
![[Avatar]](/images/avatar/80cd71aee683e52c643ad59a03524806.png)
Membro desde: 27/06/2007 13:10:28
Mensagens: 176
Localização: Curitiba
Offline
|
Ah sim, a regex resolve muitos problemas... E também tem a validação básica q é uma máscara num JFormattedTextField né, q resolve alguns problemas por não aceitar a entrada se não estiver no formato especificado, ou formata pra adequar.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 11:34:10
|
v_vinicius_v
Debugger
Membro desde: 01/02/2007 06:33:17
Mensagens: 73
Offline
|
Gobain wrote:Ah sim, a regex resolve muitos problemas... E também tem a validação básica q é uma máscara num JFormattedTextField né, q resolve alguns problemas por não aceitar a entrada se não estiver no formato especificado, ou formata pra adequar.
Eu prefiro essa que você citou !
As vezes fico na dúvida também se estou fazendo da melhor forma .
O que você é alguma coisa como isso aqui :
Eu uso essa pra validar nomes pra poder salvar como arquivo .
JTextField jtextfield = new AddressField();
è uma boa forma ?
This message was edited 4 times. Last update was at 17/10/2008 11:40:09
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 11:51:51
|
Gobain
JavaTeenager
![[Avatar]](/images/avatar/80cd71aee683e52c643ad59a03524806.png)
Membro desde: 27/06/2007 13:10:28
Mensagens: 176
Localização: Curitiba
Offline
|
Criar o Document pro JTextField ignorar alguns caracteres é bacana tb, mas será q não da pra simplificar a busca pelos caracs inválidos? Usar regex com Pattern e Matcher ao inves do if( a || b || c || .. || n )?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 12:41:44
|
renzonuccitelli
GUJ Master
Membro desde: 17/09/2008 12:58:32
Mensagens: 1133
Offline
|
Gobain wrote:Criar o Document pro JTextField ignorar alguns caracteres é bacana tb, mas será q não da pra simplificar a busca pelos caracs inválidos? Usar regex com Pattern e Matcher ao inves do if( a || b || c || .. || n )?
Exatamente o que eu ia falar. O problema que o caracter especial para indicar letra e algarismos não aceitas os acentuados, aí tem que colocar na mão. Mas mesmo assim, acho mais elegante, mas aí é questão de gosto.
Eu tinha problemas com a mascara quando limpava o campo, para que possa ser feito outro cadastro.
|
Renzo Nuccitelli
Engenheiro de Computação - ITA
http://nuccitec.com.br/
http://blog.nuccitec.com.br/
http://jcoltrane.sf.net
http://jfera.nuccitec.com.br/
http://code.google.com/p/webapp-ce/
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 12:52:04
|
Gobain
JavaTeenager
![[Avatar]](/images/avatar/80cd71aee683e52c643ad59a03524806.png)
Membro desde: 27/06/2007 13:10:28
Mensagens: 176
Localização: Curitiba
Offline
|
renzonuccitelli wrote:Exatamente o que eu ia falar. O problema que o caracter especial para indicar letra e algarismos não aceitas os acentuados, aí tem que colocar na mão. Mas mesmo assim, acho mais elegante, mas aí é questão de gosto.
Eu tinha problemas com a mascara quando limpava o campo, para que possa ser feito outro cadastro.
Mas aí é uma questão de fazer a combinação certa. Essa regex aqui > "[^\\p{L}\\p{N}]" < tirei do blog do Rafael Lossurdo, só q ela elimina qualquer pontuação junto. O negócio mesmo é fazer a necessária pra cada caso.
Expressões Regulares
[:alnum:] Caracteres alfanuméricos, o que no caso de ASCII corresponde a [A-Za-z0-9].
[:alpha:] Caracteres alfabéticos, o que no caso de ASCII corresponde a [A-Za-z].
[:blank:] Espaço e tabulação, o que no caso de ASCII corresponde a [ \t].
[:cntrl:] Caracteres de controle, o que no caso de ASCII corresponde a [\x00-\x1F\x7F].
[:digit:] Dígitos, o que no caso de ASCII corresponde a [0-9]. O Perl oferece o atalho \d.
[:graph:] Caracteres visíveis, o que no caso de ASCII corresponde a [\x21-\x7E].
[:lower:] Caracteres em caixa baixa, o que no caso de ASCII corresponde a [a-z].
[:print:] Caracteres visíveis e espaços, o que no caso de ASCII corresponde a [\x20-\x7E].
[:punct:] Caracteres de pontuação, o que no caso de ASCII corresponde a [-!"#$%&'()*+,./:;<=>?@[\\\]_`{|}~].
[:space:] Caracteres de espaços em branco, o que no caso de ASCII corresponde a [ \t\r\n\v\f]. O Perl oferece o atalho \s, que, entretanto, não é exatamente equivalente; diferente do \s, a classe ainda inclui um tabulador vertical, \x11 do ASCII.[4]
[:upper:] Caracteres em caixa alta, o que no caso de ASCII corresponde a [A-Z].
[: xdigit:] Dígitos hexadecimais, o que no caso de ASCII corresponde a [A-Fa-f0-9].
This message was edited 2 times. Last update was at 17/10/2008 12:53:27
|
|
|
 |
|
|