Zusammenfassungen

Universitätsnotizen im Markdown-Format aus Obsidian.

La gestione degli eventi è quel meccanismo con cui un'applicazione Java può reagire ad un'azione compiuta da un utente quando interagisce con i controlli grafici, oppure ad un'azione compiuta da altri componenti software o dal sistema stesso.

Gestione degli eventi

Il meccanismo che utilizza Java per gestire degli eventi è chiamato delegation event model. È caratterizzato da tre componenti:

  • event source: è la sorgente che fa scaturire l'evento a seguito di un'azione compiuta da un utente. Ad esempio, un bottone;
  • event object: è l'oggetto dell'evento che si è verificato e contiene i metodi che consentono di ottenere informazioni sull'evento;
  • event listener: è l'oggetto che rimane in attesa dell'evento e che si occuperà di gestirlo in modo opportuno. Ogni listener è rappresentato da un'interfaccia.

Action Event

È un evento che si genera quando su un componente si è verificato un evento specifico come il click del mouse o la pressione del tasto invio.

JButton submit = new JButton("submit");
submit.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("Action performed!");
    }
});

MouseEvent

È un evento che si genera quando su un componente avviene un'azione del mouse, come il click, il movimento, il rilascio, ecc.

JButton submit = new JButton("submit");
submit.addMouseListener(new MouseListener() {
    public void mouseReleased(MouseEvent e) {}
    public void mousePressed(MouseEvent e) {}
    public void mouseExited(MouseEvent e) {}
    public void mouseEntered(MouseEvent e) {}
    public void mouseClicked(MouseEvent e) {}
});

Si può utilizzare anche il MouseAdapter che implementa, tra le altre, anche l'interfaccia MouseListener. L'implementazione è vuota, e si può usare questa classe solo per ridefinire alcuni metodi di MouseListener.

JButton submit = new JButton("submit");
submit.addMouseListener(new MouseAdapter() {
    public void mousePressed(MouseEvent e) {}
});

KeyEvent

È un evento che si genera quando su un componente avviene un'azione della tastiera, come la pressione o il rilascio di un tasto. Attraverso la classe KeyEvent è possibile capire il tasto che è stato premuto.

JTextAreaarea=newJTextArea();
area.addKeyListener(newKeyListener(){
    public void keyTyped(KeyEvent e) {}
    public void keyReleased(KeyEvent e) {}
    public void keyPressed(KeyEvent e) {
        if(e.getKeyCode() == KeyEvent.VK_LEFT)
            System.out.println("left");
        else if(e.getKeyCode() == KeyEvent.VK_A)
            System.out.println("pressed a");
    }
});

Anche in questo caso si può usare KeyAdapter al posto di KeyListener.