terça-feira, 29 de abril de 2008

JTextField em UpperCase

Pesquisando alguns itens me deparei com uma resposta a uma duvida antiga minha, de como deixarias as palavras digitadas em um JTexField em maiusculo. Como normal do blog segue codificação de exemplo:

:: OBS: Prestem bem a atenção que o processo de deixar em UpperCase acontece na segunda classse.

1.a Classe - testeUpperCase

import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import org.jdesktop.swingx.JXFrame;

public class testeUpperCase extends JXFrame {

JTextField nome, endereco, bairro;

public testeUpperCase(){
super("Teste Upper Case");
setSize(400,400);
setLayout(null);
setLocationRelativeTo(null);

// chamada da segunda classe como instancia de um novo objeto JTextField.
nome = new UpperCaseField(10);
nome.setBounds(10, 10, 200, 20);
add(nome);

endereco = new UpperCaseField(10);
endereco.setBounds(10, 40, 200, 20);
add(endereco);

bairro = new UpperCaseField(10);
bairro.setBounds(10, 70, 200, 20);
add(bairro);
}

public static void createGuiAndShow(){
testeUpperCase teste = new testeUpperCase();

teste.setDefaultCloseOperation(JXFrame.EXIT_ON_CLOSE);
teste.setVisible(true);
}

public static void main(String args[]){
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createGuiAndShow();
}
});
}
}

2.a Classe - UpperCaseField

import javax.swing.JTextField;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.PlainDocument;

public class UpperCaseField extends JTextField {

public UpperCaseField(int cols) {
super(cols);
}

@Override
protected Document createDefaultModel() {
return new UpperCaseDocument();
}

static class UpperCaseDocument extends PlainDocument {

@Override
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);
}
}
}

:: Referência
Javadocs

Nenhum comentário: