Dúvida jTextfield : Não permitir que o usuário digite uma letra específica

7 respostas
B

olá, espera que essa dúvida não seja tão boba quanto parece.

eu pesquisei e não achei artigos que falem sobre isso.os que falam caminham para outra direção.

eu preciso que so não seja possível digitar " ’ " , aspas simples.

obrigado

7 Respostas

B

up

I

Dê uma olhada nos artigos e tutoriais do GUJ. Lá você vai encontrar o seguinte:
Controlando um JTextField
Como limitar caracteres de um JTextField? Você vai aprender a resolver este e outros problemas neste tutorial.

http://www.guj.com.br/articles/29

D

método: onkeypressed…

verifica se a tecla digitada é alguma dessas ai…se for você apaga o ultimo caractere do campo

eu nunca fiz isso mais acho que da certo

D

Fiquei curioso e dei uma pesquisada fiz isso ai

package com.citibank.rl.common.web.filter;
import java.awt.BorderLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JTextField;

public class AddingActionCommandActionListenerSample {
  public static void main(String args[]) {
    JFrame frame = new JFrame("E");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    final JTextField textField = new JTextField();
    frame.getContentPane().add(textField, BorderLayout.NORTH);

    KeyListener keyListener = new KeyListener() {
      public void keyPressed(KeyEvent keyEvent) {
      }
      public void keyReleased(KeyEvent keyEvent) {
        int keyCode = keyEvent.getKeyCode();
        if(keyEvent.getKeyText(keyCode).equals("Quote")){
            textField.setText(textField.getText().replaceAll("'", ""));
        }
      }
      public void keyTyped(KeyEvent keyEvent) {
      }
    };
    textField.addKeyListener(keyListener);
    
    frame.setSize(250, 150);
    frame.setVisible(true);
  }
}
B
difosal:
Fiquei curioso e dei uma pesquisada fiz isso ai
package com.citibank.rl.common.web.filter;
import java.awt.BorderLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JTextField;

public class AddingActionCommandActionListenerSample {
  public static void main(String args[]) {
    JFrame frame = new JFrame("E");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    final JTextField textField = new JTextField();
    frame.getContentPane().add(textField, BorderLayout.NORTH);

    KeyListener keyListener = new KeyListener() {
      public void keyPressed(KeyEvent keyEvent) {
      }
      public void keyReleased(KeyEvent keyEvent) {
        int keyCode = keyEvent.getKeyCode();
        if(keyEvent.getKeyText(keyCode).equals("Quote")){
            textField.setText(textField.getText().replaceAll("'", ""));
        }
      }
      public void keyTyped(KeyEvent keyEvent) {
      }
    };
    textField.addKeyListener(keyListener);
    
    frame.setSize(250, 150);
    frame.setVisible(true);
  }
}

Eu não vou conseguir testar agora, mas me parece que irá funcionar esse seu código

acredito que resolverá meus problemas =]

bom independente de funcionar bem ou não, muito obrigado por ter escrito o código hehe

V
Não trate essas coisas por listeners de botão. Eles tem o seguinte problema:

a) Seu comportamento não é multiplataforma;

b) O usuário pode dribla-los facilmente com copy&paste (lembre-se ele pode fazer isso com o mouse);

O correto é usar a interface Document, como o artigo do GUJ explica.

V

Tópico movido para o fórum de interface gráfica. Por favor, leia com atenção a descrição dos fóruns antes de postar.

Criado 6 de julho de 2011
Ultima resposta 6 de jul. de 2011
Respostas 7
Participantes 5