Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    114

    [java] Errore quando uso implements

    import java.awt.*;
    import java.awt.event.*;

    public class interfacciaconeventi extends Frame implements KeyListener{

    TextField casella;

    public interfacciaconeventi(){

    setBackground(Color.white);
    setSize(700,550);
    setLayout(new FlowLayout(FlowLayout.CENTER,15,10));
    casella=new TextField(1);
    add(casella);
    casella.addKeyListener(this);
    setVisible(true);
    requestFocus();
    }

    public void keyTyped(KeyEvent ke){

    if(ke.getKeyChar()=='q'){

    setVisible(false);
    System.exit(0);
    }
    }

    public static void main(String args[]){

    Frame f= new interfacciaconeventi();
    }
    }

    Sto provando la gestione degli eventi per un textfield pero' mi da un errore quando implemento keylistener, ecco:

    interfacciaconeventi is not abstract and does not override abstract method keyReleased(java.awt.event.KeyEvent) in java.awtevent.KeyListener

    A pescindere da errori nel codice (sicuro!), perche' mi da errore quando implemento un interfaccia??

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    Quando implementi un'interfaccia devi ridefinire TUTTI
    i metodi di quest'ultima.
    Nel caso specifico l'errore di compilazione ti fa notare
    che devi ridefinire il metodo keyRelease. Mi pare manchi
    anche keyPressed.

    ciao
    Slack? Smack!

  3. #3
    Quando implementi l'interfaccia KeyListener devi ridefinire i seguenti metodi:
    codice:
    public void keyPressed(KeyEvent e) {
    }
      
    public void keyReleased(KeyEvent e) {
    }
      
    public void keyTyped(KeyEvent e) {
    }
    Nota che non è necessario specificare un comportamento per ogni metodo. Se non implementi i metodi gli eventi verranno catturati ma nessuna azione verrà eseguita.
    ..::200 post il 1 settembre 2004::..
    ..::100 13/07/2004::..
    ..): Web Site (pazienza però) ..
    VASCO castiga chi non lecca la FIGA

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Forse la soluzione migliore - se non ti interessa gestire tutti gli eventi legati alla pressione del tasto - è quella di creare una classe dedicata alla gestione degli eventi che ti interessano (non discendente da JFrame) ereditando la classe java.awt.event.KeyAdapter.

    Tale classe implementa l'interfaccia KeyListener, quindi implementa tutti i metodi dell'interfaccia (sollevandoti dall'incarico) dandoti la possibilità di ridefinire solo i metodi relativi agli eventi che ti interessano.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    114
    Chiarissimi...Grazie a tutti...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.