KeyListener

:DOlá Pessoal!
Estou com um problema, necessito criar um evento do teclado
quando eu aperto as teclas crtl+n, o texto digitado no textfield tem que ficar em negrito

Será que alguem sabe me informar como faço isso?

agradeço desde ja

Olá Roseli,

é muito simples. Segue abaixo:


seuTextField.addKeyListener(new KeyListener() {
	
       public void keyPressed(KeyEvent e) {

        if(KeyEvent.getKeyText(e.getKeyCode()).equalsIgnoreCase("n") && e.isControlDown()) {
			field.setFont(new Font("Arial", Font.BOLD, 12));
		}
				
	}
	
	public void keyReleased(KeyEvent e) {
		// TODO Auto-generated method stub
	}

	public void keyTyped(KeyEvent e) {
		// TODO Auto-generated method stub		
	}			
});

Qualquer coisa só perguntar!

[]'s

Rafael Orágio.

Só complementando,

caso queira tirar o negrito também com o mesmo atalho, use este código:


field.addKeyListener(new KeyListener() {
	public void keyPressed(KeyEvent e) {
			
		if(KeyEvent.getKeyText(e.getKeyCode()).equalsIgnoreCase("n") && e.isControlDown()){
				
			Font font = field.getFont();
					
			if(font.isBold()) {
				field.setFont(new Font("Arial", Font.PLAIN, 12));
			} else {
				field.setFont(new Font("Arial", Font.BOLD, 12));
			}
		}
	}

	public void keyReleased(KeyEvent e) {
		// TODO Auto-generated method stub
	}

	public void keyTyped(KeyEvent e) {
		// TODO Auto-generated method stub		
	}			
});
		

[]'s

Muito obrigado agora deu certo o programa
Valeu
Abraços

De nada!

Estamos aqui pra isso!

[]'s

Olá Rafael

Eu escrevi assim meu codigo mas nao quer rodar da um erro
o programa
tem um textField onde o usuario vai digitar
caso o usuario aperte control+n o que ele digitou fica em negrito

sera q pode me ajudar mais uma vez
Obrigado
public void keyPressed(KeyEvent e) {

	if (e.getKeyText(e.getKeyCode()).equalsIgnoreCase("n") && e.isControlDown()) 
	tf_texto.setFont(new Font(tf_texto.getText("",Font.BOLD)));

Olá rso1988

Eu escrevi assim meu codigo mas nao quer rodar da um erro
o programa
tem um textField onde o usuario vai digitar
caso o usuario aperte control+n o que ele digitou fica em negrito

sera q pode me ajudar mais uma vez
Obrigado
public void keyPressed(KeyEvent e) {

if (e.getKeyText(e.getKeyCode()).equalsIgnoreCase(“n”) && e.isControlDown())
tf_texto.setFont(new Font(tf_texto.getText("",Font.BOLD)));

[/quote]

Oi Roseli,

o problema está nesta linha:

Quando vc faz um new Font(…), você tá adicionando um getText() do seu textField, isto não faz sentido, pois o contrutor da classe Font, recebe 3 parâmetros: o tipo de fonte da sua preferência, como por exemplo, “Arial”, “Times New Roman”, etc. (pode deixar como “Arial”, pois esta é a fonte default do textField), recebe uma constante que aplica o esilo à fonte como, “itálico”, “negrito”, (que no seu caso é o “BOLD”), etc., e por último um valor do tipo “int” que é o tamanho da fonte (valor “12” por default). Se você usar exatamente como no código que eu coloquei, vai funcionar certinho, todo o texto do textField ficará em negrito, então, só aletere a linha acima por:

[]'s

Asim e que coloquei de novo a mesma coisa
agora deu certo muito obrigado
no caso de italico e so fazer a mesma coisa né?

Isso mesmo, só usar o “Font.ITALIC”.

E para mudar o atalho, por exemplo, CTRL + I, só alterar o "equalsIgnoreCase(“n”) " dentro do if, para "equalsIgnoreCase(“i”) "

Abs.

Me desculpe ficar com muitas perguntas e que passei a noite pra fazer isso e nao havia conseguido
e ainda tenho que criar uma seleção de cores se o usuario clicar e uma cor AZUL o texto mulda , e a sua
ajuda foi muito otima muito obrigado