Pessoal qual classe e metodo responsavel que quando o usuario digitar em um textfeild mesmo com o Caps Lock desligado aparece maiusculas?
Como Inserir letras MAIUSCULAS.[RESOLVIDO]
12 Respostas
Também preciso disso, mas para qdo ele digitar a UF!
Isso te ajuda ?
Vai ser util, com certeza! 
Vixe já ralei muito com isso…
Você deve adicionar um KeyListener para o seu campo de texto para tratar isso.
Exemplo:
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class Listener implements KeyListener {
public void keyTyped(KeyEvent e) {
char ch = e.getKeyChar();
if (Character.isLetter(ch)) {
e.setKeyChar(Character.toUpperCase(ch));
}
}
public void keyPressed(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
}
}
E aplique ao seu JTextField:
JTextField campoTexto = new JTextField();
Listener listener = new Listener();
campoTexto.addKeyListener(listener);
Espero ter ajudado.
Essa é a maneira errada de se fazer. Como burlar:
- Dê ctrl+c numa palavra com letras minúsculas;
- Vá até o campo, dê ctrl+v
Ou seja, se seu usuário estiver copiando o valor do campo de um bloco de notas ou excel, seu método fura! O correto é fazer um Document, como descrito no link acima.
Boa amigao Ajudou muito. Vlw mesmo agora se vc poder me da uma força em outro topico lá vlw
Essa é a maneira errada de se fazer. Como burlar:
- Dê ctrl+c numa palavra com letras minúsculas;
- Vá até o campo, dê ctrl+v
Ou seja, se seu usuário estiver copiando o valor do campo de um bloco de notas ou excel, seu método fura! O correto é fazer um Document, como descrito no link acima.
Errada!?
Basta mudar o Listener…
Testa aí pra ver se funciona amigo.
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JTextField;
public class Listener implements KeyListener {
public void keyTyped(KeyEvent e) {
char ch = e.getKeyChar();
if (Character.isLetter(ch)) {
e.setKeyChar(Character.toUpperCase(ch));
}
}
public void keyPressed(KeyEvent e) {
boolean validar = false;
if (e.isControlDown()) {
if (e.getKeyCode() == KeyEvent.VK_V) {
validar = true;
}
}
if (e.isShiftDown()) {
if (e.getKeyCode() == KeyEvent.VK_INSERT) {
validar = true;
}
}
if (validar) {
String text = ((JTextField) e.getSource()).getText();
text = text.toUpperCase();
((JTextField) e.getSource()).setText(text);
}
}
public void keyReleased(KeyEvent e) {
}
}
Ok, agora faça o ctrl+c e o ctrl+v com o mouse… (detalhe, o document é imune a todos esses problemas, sem ter que criar flags ou outras gambis, como a que vc fez).
Sem falar que em outros SOs, pode ser que o copiar e colar não sejam com as teclas CTRL ou SHIFT.
Ok, agora faça o ctrl+c e o ctrl+v com o mouse… (detalhe, o document é imune a todos esses problemas, sem ter que criar flags ou outras gambis, como a que vc fez).Sem falar que em outros SOs, pode ser que o copiar e colar não sejam com as teclas CTRL ou SHIFT.
Tratando o evento do mouse:
class ListenerMouse implements MouseListener {
public void mouseClicked(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
//Levando em conta que o botão do mouse que cola é o botão direito (só pra testar)
if (e.getButton() == MouseEvent.BUTTON3) {
int inicioSelecao = ((JTextField) e.getSource()).getSelectionStart();
int fimSelecao = ((JTextField) e.getSource()).getSelectionEnd();
String textoOriginal = ((JTextField) e.getSource()).getText();
String textoAntes = textoOriginal.substring(0, inicioSelecao);
String textoDepois = textoOriginal.substring(fimSelecao, textoOriginal.length());
System.out.println(textoAntes + textoDepois);
Clipboard clipBoard = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = clipBoard.getContents(new Object());
try {
String texto = (String) t.getTransferData(DataFlavor.stringFlavor);
((JTextField) e.getSource()).setText((textoAntes +texto+ textoDepois).toUpperCase());
} catch (UnsupportedFlavorException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
}
Eu confesso que não conhecia outra forma para tratar isso :oops: e concordo com relação ao SO poder tratar esses eventos com outras teclas.
Agora aprendi a maneira mais correta de se fazer, mas para o que eu precisei usar, a maneira que eu implementei serviu demais pra mim. 
Só tentei ajudar e demonstrar que existe outra forma (ainda que não seja tão correta) de se tratar esse evento…
Abraço!
Eu confesso que não conhecia outra forma para tratar isso :oops: e concordo com relação ao SO poder tratar esses eventos com outras teclas.Agora aprendi a maneira mais correta de se fazer, mas para o que eu precisei usar, a maneira que eu implementei serviu demais pra mim.
Só tentei ajudar e demonstrar que existe outra forma (ainda que não seja tão correta) de se tratar esse evento…
Claro, nem tiro seu mérito de tentar ajudar.
Só ressaltei que era errada para que o colega não pensasse que essa, aparentemente mais simples, é a correta.
(PS: Essa que vc colocou é a maneira clássica de se tentar resolver. Eu já fiz assim, e provavelmente todo mundo que hoje usa o Document fez também, e você só começa a descobrir os problemas tempos depois, quando vc percebe que algum usuário descobriu uma forma de inserir minúsculas na aplicação)
Excelente, aqui funcionou perfeitamente. Valeu galera
No Windows pode usar Colar = Shift+Ins, e Copiar = Ctrl+Ins.