JTextField - Letra Maiuscula?

9 respostas
M

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

9 Respostas

JP1

Eu também tenho esta dúvida.

dbotelho

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

C

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.

dbotelho
"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.
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);
         }
     }
 }
C

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

JP1

:thumbup:

Show mesmo.

valeu também. :smiley:

R

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

T+

wanderley.drumond

Aqui deu erro:

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

Será que num deveria ser na última linha:

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

wanderley.drumond:
Aqui deu erro:

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

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”.

Criado 18 de julho de 2005
Ultima resposta 28 de nov. de 2010
Respostas 9
Participantes 7