sábado, 10 de janeiro de 2015

Java : Teclado ( Listener ) em Componentes Swing

Existem vários tipos de listeners que servem para receber e interpretar o input realizado com o periférico para qual o dado listener fora criado, e a partir deste realizar uma reação.
Neste caso iremos criar um para o rato e teclado.


// Syntax

elemento.addKeyListener(new KeyListener(){

public void keyPressed(KeyEvent e) {
(...)
}

public void keyReleased(KeyEvent e) {
(...)
}

public void keyTyped(KeyEvent e) {
(...)
}

});

O "elemento" referido na syntax refere-se ao objeto alvo do dado Listener.



// Aplicar o KeyListener 

// Exemplos de Aplicação

// em TextAreas


JTextArea area = new JTextAre();

area.addKeyListener(new KeyListener(){(...)});

// em JFrames


JFrame frame = new JFrame();

frame.addKeyListener(new KeyListener(){(...)});

// Aplicar em sub-classes (ex. JFrame(superclasse));


public class MinhaClasse extends JFrame {


public static void main(String[] args){


addKeyListener(new KeyListener(){...});


}



}

// Aplicar-lhe um Comportamento / Reacção ( Behavior )

A reacção ao input vai depender de várias derivadas, as quais podemos ser nós a criar e editar, conforme aquilo que pretendemos.

keyPressed : Quando a tecla for carregada.
keyReleased : Quando a tecla for largada.
keyTyped :  Quando um unicode char é enviado a partir do teclado. De um modo geral, o keyTyped é utilizado quando é introduzido um char que possa ser representado como 'a' e 'A' ( tabela de exemplo ). 


// Identificar a Tecla Introduzida

e.getKeyCode() » Obter o código da tecla introduzida (int) .
if( e.getKeyCode() == 10) { (...) } » Se a keyCode da tecla introduzida for 10 ...


// Aplicação


// CODE
frame.addKeyListener(new KeyListener() {

public void keyPressed(KeyEvent e) {

int keyCode = e.getKeyCode();                                                           
//  O valor de e.getKeyCode() é armazenado na variável keyCode.      
System.out.println(keyCode);                                                             
//  Output do keyCode respetivamente à tecla introduzida.                    
                if(keyCode == 10 ) {                                                                
//  Se tecla introduzida (keyCode) é o ENTER (10).                            
System.out.println(" A tecla ENTER foi introduzida, obrigado. ");
//  Realizar o output anterior
                }                                                                                                
               ...                                                                                               
}

public void keyReleased(KeyEvent e) {
                 // Code

}

public void keyTyped(KeyEvent e) {

        // Code

}
});

O dado listener será aplicado ao objeto frame.

Fundo Azul: Será executado na introdução de qualquer tecla.
Fundo Verde: Será executado conforme a condição establecida, neste caso, só se for introduzida a tecla enter.


// END


// Bibliotecas Importadas

import javax.swing.JFrame;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

// Links




5 Bit's'Pot: Java : Teclado ( Listener ) em Componentes Swing Existem vários tipos de listeners que servem para receber e interpretar o input realizado com o periférico para qual o dado listener fo...

Sem comentários:

Enviar um comentário

< >