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]
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:
[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”.