JTextField - Letra Maiuscula?

Ola pessoal, será alguém sabe se tem como e como faço pra define letra maiuscula em um campo JTextField?

Eu também tenho esta dúvida.

Não percebi a dúvida :oops:
Apenas quer inserir uma letra maiúscula num JTextField ??

JTextField text = new JTextField(); text.setText("LETRA MAIUSCULA");
Se for para tudo o q seja escrito num JTextField seja convertido em letras maiusculas, verifique a documentação do JTextField, q tem la um exemplo para um UpperCaseField

O model do componente JTextFiled é chamado de PlainDocument (se não me engano). Crie uma classe que estenda de PlainDocument e no método insertString(), crie a implementação que vc quiser, uma vez eu fiz, para uppercase e lowercase, mas num sei onde está esse código.

Tente fazer isso, e se não conseguir, é só avisar aki, que eu procuro e posto o código que fiz.

[quote=“http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JTextField.html”]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]

1 curtida

Por isso que eu gosto de gente eficiente. :smiley:

:thumbup:

Show mesmo.

valeu também. :smiley:

ola, alguem pode explicar o que devo passar nos parametros do metodo insertString dessa classe? nao entendi o que o attributeSet deve passar.

T+

Aqui deu erro:

[quote]cannot find symbol
symbol: method insertString(int,java.lang.String,javax.print.attribute.AttributeSet)
location: class javax.swing.text.PlainDocument[/quote]

Será que num deveria ser na última linha:

super.insertString(offs, new String(upper), (javax.swing.text.AttributeSet) a);

[quote=wanderley.drumond]Aqui deu erro:

[quote]cannot find symbol
symbol: method insertString(int,java.lang.String,javax.print.attribute.AttributeSet)
location: class javax.swing.text.PlainDocument[/quote][/quote]
O método “insertString(int, java.lang.String, javax.print.attribute.AttributeSet)” não existe. O certo é insertString(int, java.lang.String, javax.swing.text.AttributeSet).

Na hora de fazer o import do AttributeSet, pegue o do pacote “javax.swing.text” e não do pacote “javax.print.attribute”.