:: 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:
Postar um comentário