Sim claro que ele vai utilizar o ultimo setDocument se vc no primeiro setDocument passa um objeto por parametro e dps utiliza o mesmo metodo para passar outro objeto por parametro ele vai considerar a ultima instancia.
Ex. simples:
publicvoidsetObejto(Objectteste){
objetoTeste=teste}
publicvoidfazAlgumaCoisa(){
setObjeto(newmeuObjeto1);setObjeto(newmeuObjeto2); //meuObjeto1 é "removido" para a criação do meuObjeto2}
Naruto
e como eo poderia resolver isso???
malves_info
Em que situação vc utilizaria o: edtnome.setDocument(new FixedLengthDocument(50));
E o: edtnome.setDocument(new UppeCase());
???
Naruto
então acho que seria na mesma hora ne? pois uma vai fazer o texto fika uppercase e a outra limita a quantidade de digitos…
malves_info
Cara você pode utilizar uma KeyListener para verificar a quantidade de chars que o cara ta digitando é uma opção, ae vc utilizaria o setDocument para o UpperCase
xwillianss
Naruto:
Boa Noite…
galera assim tenhu uma classe que limita q quantidade de digitos e outra para deixa os JTextfield com uppercase…
ai eu passo elas assim…
xwillianss a Instancia do Objeto dele ta certa ele utiliza antes somente para verificar se o mesmo esta setado como null para que não seja criado quando for utilizado mais de uma vez.
Naruto
puts nem consegui o.O
malves_info
Tentou utilizar um evento para o teu text aonde verique quantos digitos o cara ta digitando e dependendo da quantidade ele bloquear?
rsrrs… para mim não. Não tenho os métodos FixedLengthDocument e UppeCase aqui. Mas acho que ele tem.
malves_info
Isso que vc postou é praticamente a mesma coisa que ele esta fazendo, volto frizar que! quando vc instancia um objeto ex.: obj1 e dps instandica outro objeto do mesmo tipo ex.: obj2 o obj1 não vai existir referencia pra ele. Utilizando o método setDocument duas vezes seguidas passando um objeto por parametro ele vai considerar a ultima instancia.
Por isso dei a ideia pra ele controlar a quantidade de caracter digitado no campo em um evento e o UpperCase ele pode setar no metodo setDocument.
netShot
pq não faz assim:
importjavax.swing.text.AttributeSet;importjavax.swing.text.BadLocationException;importjavax.swing.text.PlainDocument;publicclassMyDocumentextendsPlainDocument{privatestaticfinallongserialVersionUID=1L;privateintiMaxLength;privateBooleantoUperCase;publicMyDocument(intmaxlen,BooleanupCase){super();iMaxLength=maxlen;toUperCase=upCase;}publicvoidinsertString(intoffset,Stringstr,AttributeSetattr)throwsBadLocationException{if(str==null)return;if(toUperCase)// maiusculo ??str=str.toUpperCase();if(iMaxLength<=0)// aceitara qualquer no. de caracteres{super.insertString(offset,str,attr);return;}intilen=(getLength()+str.length());if(ilen<=iMaxLength)// se o comprimento final for menor...super.insertString(offset,str,attr);// ...aceita strelse{if(getLength()==iMaxLength)return;// nada a fazerStringnewStr=str.substring(0,(iMaxLength-getLength()));super.insertString(offset,newStr,attr);}}}
Pra usar:
seuTextField.setDocument(newMyDocument(30,true));
xwillianss
malves_info:
Isso que vc postou é praticamente a mesma coisa que ele esta fazendo, volto frizar que! quando vc instancia um objeto ex.: obj1 e dps instandica outro objeto do mesmo tipo ex.: obj2 o obj1 não vai existir referencia pra ele. Utilizando o método setDocument duas vezes seguidas passando um objeto por parametro ele vai considerar a ultima instancia.
Por isso dei a ideia pra ele controlar a quantidade de caracter digitado no campo em um evento e o UpperCase ele pode setar no metodo setDocument.
Pensei outra coisa… foi mal
H
hlds
tb concordo c o malves, n vejo outra forma de fazer isso, a n ser fazendo um por eventos e outro usa o metodo citado…eu faria td por evento na verdade
Naruto
netShot:
pq não faz assim:
importjavax.swing.text.AttributeSet;importjavax.swing.text.BadLocationException;importjavax.swing.text.PlainDocument;publicclassMyDocumentextendsPlainDocument{privatestaticfinallongserialVersionUID=1L;privateintiMaxLength;privateBooleantoUperCase;publicMyDocument(intmaxlen,BooleanupCase){super();iMaxLength=maxlen;toUperCase=upCase;}publicvoidinsertString(intoffset,Stringstr,AttributeSetattr)throwsBadLocationException{if(str==null)return;if(toUperCase)// maiusculo ??str=str.toUpperCase();if(iMaxLength<=0)// aceitara qualquer no. de caracteres{super.insertString(offset,str,attr);return;}intilen=(getLength()+str.length());if(ilen<=iMaxLength)// se o comprimento final for menor...super.insertString(offset,str,attr);// ...aceita strelse{if(getLength()==iMaxLength)return;// nada a fazerStringnewStr=str.substring(0,(iMaxLength-getLength()));super.insertString(offset,newStr,attr);}}}
if (toUperCase)// maiusculo ??
str = str.toUpperCase();
c podia me explicaR??
vlwww
malves_info
toUperCase é um booleano que recebe true ou false no construtor , ele deve indicar se aquela String vai poder ser modificada para UpperCase
Naruto
vc fala assim eu verificar assim:
if (toUperCase == true)
str = str.toUpperCase();
Naruto
so que ele naum aceita eu fazer isso
malves_info
Como assim não aceita??? vc esta passando no parametro do contrutor oque? True? False?
Naruto
true c ele for true ele executa a linha de baixo trannformando a string em uppercase mais naum sei pq que ele da erro passo assim
if (toUperCase == true)
malves_info
Que erro?!
Fernando_Generoso_da
Qual versão do java vc está usando?? 1.4??
Se for, para o exemplo é necessário utilizar a 1.5 por causa do autoboxing, ou…
utilizar desse jeito:
if(toUperCase.booleanValue()==true)
Naruto
caraaaaaaa que erro fatal rsrsrss
é que as variaveis estava sendo declarada assim Boolean rsrsrsrs ai mudei para boolean rsrsrs
vlwww vamos ver c da certo agora
ai ja posto
Naruto
bom aparentemente esta funcionado mais so que esses dias tinha feito uma coisa parecida so que me gero o seguinte problema depois qu eue fechei o eclipse e abri de novo meu form naum era mais mostrado o.O e so mostro depois que eu tirei isso o.O mais eu etstei fechei e abrir e estava normal o.O qq coisa eu posto de novo…
vlww a todos