Ola pessoal, será alguém sabe se tem como e como faço pra define letra maiuscula em um campo JTextField?
JTextField - Letra Maiuscula?
9 Respostas
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.
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); } } }
Por isso que eu gosto de gente eficiente. 
:thumbup:
Show mesmo.
valeu também. 
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:
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);
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”.