Java Fehler bei Java ActionListener

joker_joe

Cadet 1st Year
Dabei seit
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 !
 

skeemo

Ensign
Dabei seit
Feb. 2007
Beiträge
129
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).
 

SymA

Captain
Dabei seit
Apr. 2006
Beiträge
3.346
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....
 

Darlis

Commodore
Dabei seit
Jan. 2011
Beiträge
4.230
Ich vermute mal, du will mit der Klasse Tastatureingaben verarbeiten. Dann ist ActionListener sowieso die falsche Wahl.
 

Darlis

Commodore
Dabei seit
Jan. 2011
Beiträge
4.230
Und wie willst du mit dem ActionListener Tastatureingaben abfangen?
 

joker_joe

Cadet 1st Year
Ersteller dieses Themas
Dabei seit
Aug. 2013
Beiträge
14
Weiß nicht . Mein Fehler
Ergänzung ()

Aber könnt ihr mir trotzdem helfen denn ich wollte das alles noch netzwerk Übertragung machen
 

Darlis

Commodore
Dabei seit
Jan. 2011
Beiträge
4.230
Von mir eher weniger, aber auch andere dürften mit "wollte das alles noch netzwerk Übertragung machen" wenig anfangen können.
 

joker_joe

Cadet 1st Year
Ersteller dieses Themas
Dabei seit
Aug. 2013
Beiträge
14
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.
 

Rossie

Commodore
Dabei seit
Dez. 2010
Beiträge
4.100
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.
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?
 

Foochan

Ensign
Dabei seit
Aug. 2013
Beiträge
217
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)
 
Top