Java - AWT KeyListener Interface


Java KeyListener je obaviješten kad god promijenite stanje ključa. Obaviješten je protiv KeyEventa. Interfejs KeyListener se nalazi u paketu java.awt.event i ima tri metode. Sljedi deklaracija za java.awt.event.KeyListener interfejs:

public interface KeyListener extends EventListener  


Metode KeyListener interface

Potpis 3 metode za KeyListener interfejs je prikazan u sljedećoj tabeli:

Metoda Opis
public abstract void keyPressed (KeyEvent e); Poziva se kada se pritisne ključ.
public abstract void keyReleased (KeyEvent e); Poziva se kada je ključ otpušten.
public abstract void keyTyped (KeyEvent e); Poziva se kada se otkuca ključ.


Nasljeđene metode

KeyListener Interface nasljeđuje metode iz sljedećeg interfejsa:

  • java.awt.EventListener


Primjer Java KeyListener

U sljedećem primjeru implementujemo metode KeyListener interfejsa.

// Importovanje awt biblioteka  
import java.awt.*;    
import java.awt.event.*;    

// Klasa koja nasljeđuje Frame klasu i implementuje KeyListener interfejs  
public class Main extends Frame implements KeyListener {    
    // Kreiranje objekta klase Label i klase TextArea  
    Label l;    
    TextArea area;
    
    // Konstruktor klase 
    Main() {    
        // kreiranje label-a
        l = new Label();    
        // Postavljanje lokacije label-a u okviru (Frame) 
        l.setBounds (20, 50, 100, 20);    
        // Kreiranje oblasti za tekst
        area = new TextArea();    
        // Postavljanje lokacije tekstualnog područja  
        area.setBounds (20, 80, 300, 300);    
        // Dodavanje KeyListener-a u područje teksta 
        area.addKeyListener(this);  
        // Dodavanje label-a i područja teksta u okvir
        add(l);  
        add(area);    
        // Postavljanje veličine, izgleda i vidljivosti okvira
        setSize (400, 400);    
        setLayout (null);    
        setVisible (true);    
    }    
    // Nadjačavanje (Overriding) metode keyPressed() KeyListener-a
    // interfejsa gdje postavljamo tekst oznake kada se pritisne tipka  
    public void keyPressed (KeyEvent e) {    
        l.setText ("Pritisnut ključ");    
    }    
    // Nadjačavanje metode keyReleased() KeyListener-a
    // interfejsa gdje postavljamo tekst oznake kada se ključ otpusti  
    public void keyReleased (KeyEvent e) {    
        l.setText ("Pušten ključ");    
    }    
    // Nadjačavanje metode keyTyped() KeyListener-a
    // interfejs gdje postavljamo tekst oznake kada se ukuca ključ  
    public void keyTyped (KeyEvent e) {    
        l.setText ("Tipkanje");    
    }    
    // Metoda main  
    public static void main(String[] args) {    
        new Main();    
    }    
}

Prikaz koda iz gornjeg primjera izgledaće ovako:



Java KeyListener - Primjer 2: Brojanje riječi i karaktera

U sljedećem primjeru ispisujemo broj riječi i karaktera stringa. Ovdje se string preuzima iz TextArea i koristi KeyReleased() metodu KeyListener interfejsa.

// Importovanje potrebnih biblioteka  
import java.awt.*;    
import java.awt.event.*;    

// Klasa koja nasljeđuje Frame klasu i implementuje KeyListener interfejs 
public class Main extends Frame implements KeyListener {    
    // Objekt Label i TextArea 
    Label l;    
    TextArea area;    
    // Konstruktor klase
    Main() {    
        // Kreiranje label-a   
        l = new Label();    
        // Postavljanje lokacije label-a
        l.setBounds (20, 50, 200, 20);    
        // Kreiranje oblasti za tekst 
        area = new TextArea();    
        // Postavljanje lokacije tekstualnog područja 
        area.setBounds (20, 80, 300, 300);    
        // Dodavanje KeyListener-a u područje teksta   
        area.addKeyListener(this);    
        // Dodavanje label-a i područja teksta u okvir (Frame)
        add(l);  
        add(area);   
        
        // Podešavanje veličine, rasporeda i vidljivosti okvira  
        setSize (400, 400);    
        setLayout (null);    
        setVisible (true);    
    }    
    // Čak i ako ne definišemo metode interfejsa, moramo ih nadjačati 
    public void keyPressed(KeyEvent e) {}    
    // Nadjačavanje metode keyReleased() interfejsa KeyListener   
    public void keyReleased (KeyEvent e) {    
        // Definisanje stringa koji se dohvata metodom getText() klase TextArea  
        String text = area.getText();    
        // Cijepanje stringa riječima  
        String words[] = text.split ("\\s");    
        // Ispisivanje broja reči i karaktera stringa   
        l.setText ("Riječi: " + words.length + " Karaktera:" + text.length());    
    }    
    public void keyTyped(KeyEvent e) {}    
    // Metoda main  
    public static void main(String[] args) {    
        new Main();    
    }    
}

Prikaz koda iz gornjeg primjera izgledaće ovako: