Java Fehler bei Java ActionListener

joker_joe

Cadet 1st Year
Registriert
Aug. 2013
Beiträge
14
also ich bin gerade dabei ein kleines Spiel mit Java zu programmieren das über Netzwerk läuft.
Ich bin noch nicht so gut in Java darum brauch ich Hilfe.
Hier der Code:

Code:
import java.awt.BorderLayout; 
import java.awt.event.KeyEvent; 
import java.awt.event.KeyListener; 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.Object;

import javax.swing.JFrame; 
import javax.swing.JTextField; 

import javax.swing.Timer;

import java.util.EventListener;


public class KeyEventClass extends JFrame implements ActionListener { 

    private int dx;
    private int dy;
    private Timer timer;
     
    public KeyEventClass(){ 
        this.setLayout(new BorderLayout()); 
        JTextField field = new JTextField(); 
        field.addActionListener(this); 
        this.add(field, BorderLayout.CENTER); 
        this.pack(); 
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        this.setLocationRelativeTo(null); 
        this.setVisible(true); 
        this.timer = new Timer(1000, this);
        this.timer.start();
        
        this.Print();
        
    } 


    



    public void keyTyped(KeyEvent e) { 
       // if(e.getKeyCode() == KeyEvent.VK_UNDEFINED){ 
            //System.out.println("Kein Unicode-Character"); 
        //} 
    } 

    public void keyPressed(KeyEvent e) { 
        int key = e.getKeyCode();

        if (key == KeyEvent.VK_SPACE) {
            
        }

        if (key == KeyEvent.VK_LEFT) {
            dx = -1;
        }

        if (key == KeyEvent.VK_RIGHT) {
            dx = 1;
        }

        if (key == KeyEvent.VK_UP) {
            dy = -1;
        }

        if (key == KeyEvent.VK_DOWN) {
            dy = 1;
        }
    } 

    public void keyReleased(KeyEvent e) { 
        int key = e.getKeyCode();

        if (key == KeyEvent.VK_LEFT) {
            dx = 0;
        }

        if (key == KeyEvent.VK_RIGHT) {
            dx = 0;
        }

        if (key == KeyEvent.VK_UP) {
            dy = 0;
        }

        if (key == KeyEvent.VK_DOWN) {
            dy = 0;
        }
    } 
    public void Print()  {
        while (true) {
            System.out.println( dx + dy);
        }
    }
     
    public static void main(String[] args) { 
        new KeyEventClass(); 
    } 
}
das ist mein code und der Fehler dazu ist:

KeyEventClass is not abstract and does not override abstract method actionPerformer(ActionEvent) in ActionListener

Vielen Dank schon im Voraus !
 
Wenn du das Interface ActionListener implementierst, dann musst du auch alle Methoden, die das Interface vorgibt implementieren.
Genau das sagt dir deine Fehlermeldung:

KeyEventClass....does not override abstract method actionPerformed(ActionEvent).
 
Code:
public void actionPerformed (ActionEvent ae){
        // Die Quelle wird mit getSource() abgefragt und mit den
        // Buttons abgeglichen. Wenn die Quelle des ActionEvents einer
        // der Buttons ist, wird der Text des JLabels entsprechend geändert
        if(ae.getSource() == this.button1){
            label.setText(("Button 1 wurde betätigt"));
        }
        else if(ae.getSource() == this.button2){
            label.setText("Button 2 wurde betätigt");
        }
        else if (ae.getSource() == this.button3){
            label.setText(("Button 3 wurde betätigt"));
        }
    }
Du musst dich die Funktion actionPerformed implementieren, sonst kriegst du diesen Fehler....
 
Ich vermute mal, du will mit der Klasse Tastatureingaben verarbeiten. Dann ist ActionListener sowieso die falsche Wahl.
 
Und wie willst du mit dem ActionListener Tastatureingaben abfangen?
 
Weiß nicht . Mein Fehler
Ergänzung ()

Aber könnt ihr mir trotzdem helfen denn ich wollte das alles noch netzwerk Übertragung machen
 
Von mir eher weniger, aber auch andere dürften mit "wollte das alles noch netzwerk Übertragung machen" wenig anfangen können.
 
Also das hab ich schon gemacht aber hab das nicht eingefügt. Das muss hier niemand machen ich meine den Fehler mit dem KeyListener und ActionListener.
 
Darlis schrieb:
Von mir eher weniger, aber auch andere dürften mit "wollte das alles noch netzwerk Übertragung machen" wenig anfangen können.

joker_joe schrieb:
Also das hab ich schon gemacht aber hab das nicht eingefügt. Das muss hier niemand machen ich meine den Fehler mit dem KeyListener und ActionListener.

Du sprichst in Rätseln. Der Code für die Netzwerkübertragung steht schon? Aber die Fehlermeldung des Compilers und die Hinweise im Thread reichen nicht, um den Code semantisch korrekt zu gestalten?
 
Wie SymA bereits gesagt hat:

du musst in deiner Klasse irgendwo die actionPerformed-Methode implementieren bzw. einfügen

kann so aussehen:
Code:
@Override
public void actionPerformed(ActionEvent ae) {		
}

(Falls du eclipse verwenden solltest, kannst du an die Stelle klicken, wo der Fehler angezeigt wird und Strg + 1 drücken.
Eclipse fügt daraufhin die fehlende Methode automatisch ein)
 
Zurück
Oben