alguem pode me ajudar
por favor?
alguem pode me ajudar
por favor?
Oi, jonasjgs2.
Já deu uma olhada no Class JTextField?
Espero que ajude.
[quote]Customized fields can easily be created by extending the model and changing the default model provided. For example, the following piece of code will create a field that holds only upper case characters. It will work even if text is pasted into from the clipboard or it is altered via programmatic changes.
[code]
public class UpperCaseField extends JTextField {
public UpperCaseField(int cols) {
super(cols);
}
protected Document createDefaultModel() {
return new UpperCaseDocument();
}
static class UpperCaseDocument extends PlainDocument {
public void insertString(int offs, String str, AttributeSet a)
throws BadLocationException {
if (str == null) {
return;
}
char[] upper = str.toCharArray();
for (int i = 0; i < upper.length; i++) {
upper[i] = Character.toUpperCase(upper[i]);
}
super.insertString(offs, new String(upper), a);
}
}
}[/code][/quote]
Nossa, era mais fácil só ter chamado toUpperCase:
public class UpperCaseDocument extends PlainDocument {
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
if (str == null) {
return;
}
super.insertString(offs, str.toUpperCase(), a);
}
}
seuTextField.setDocument(new UpperCaseDocument());
Mas é bom ler o artigo que indiquei para saber o que tá acontecendo. E também para aprender a segunda demanda comum de um JTextField: limitar o número de caracteres.
tguerra
crieia a classe informada por vc mas me da
um erro nesta linha
o erro e o seguinte:
super.insertString(offs, new String(upper), a);
no suitable method found for insertString(int,java.lang.String,javax.print.attribute.AttributeSet)
method javax.swing.text.PlainDocument.insertString(int,java.lang.String,javax.swing.text.AttributeSet) is not applicable
(actual argument javax.print.attribute.AttributeSet cannot be converted to javax.swing.text.AttributeSet by method invocation conversion)
Você importou a classe AttributeSet errada.
[quote=jonasjgs2]tguerra
crieia a classe informada por vc mas me da
um erro nesta linha
o erro e o seguinte:
super.insertString(offs, new String(upper), a);
no suitable method found for insertString(int,java.lang.String,javax.print.attribute.AttributeSet)
method javax.swing.text.PlainDocument.insertString(int,java.lang.String,javax.swing.text.AttributeSet) is not applicable
(actual argument javax.print.attribute.AttributeSet cannot be converted to javax.swing.text.AttributeSet by method invocation conversion)[/quote]
Oi, jonasjgs2.
A classe que eu te passei foi referenciando a documentação do JTextField: http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JTextField.html, na parte referente a UpperCase, pra que você a partir da documentação, gerasse sua solução.
Mas o ViniGodoy simplificou tudo no post dele.
vinigodoy
parabens cara,
funcionou legal…
muito obrigado
[quote=ViniGodoy]Nossa, era mais fácil só ter chamado toUpperCase:
public class UpperCaseDocument extends PlainDocument {
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
if (str == null) {
return;
}
super.insertString(offs, str.toUpperCase(), a);
}
}
seuTextField.setDocument(new UpperCaseDocument());
Mas é bom ler o artigo que indiquei para saber o que tá acontecendo. E também para aprender a segunda demanda comum de um JTextField: limitar o número de caracteres.[/quote]
Vlw!!! Muito bom mesmo, funcionou legal. Só tenho mais um probleminha. Como consigo limitar a quantidade de caracteres?
Para limitar a quantidade de caracteres, veja o que o Vinicius lhe falou há 2 posts atrás:
E o artigo que ele lhe indicou, caso você tenha se esquecido, é: http://www.guj.com.br/articles/29