---
title: "Problem med KeyListener"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/98506-problem-med-keylistener"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "Smultron"
published: "2004-03-01T11:10:04.000Z"
updated: "2004-03-15T08:14:43.000Z"
replies: 10
views: 391
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/98506-problem-med-keylistener"
---

# Problem med KeyListener

## #1 — Smultron, 2004-03-01T11:10Z

här är koden

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

public class KeyHandler implements KeyListener
{
 Move move= new Move();
 boolean right= false, left= false, run= false;
 
 public void init()
 {
 	addKeyListener( this);
 }

 public void keyPressed( KeyEvent ke)
 {
 	if( ke.getKeyCode()== ke.VK_RIGHT){ right= true;}
 	if( ke.getKeyCode()== ke.VK_LEFT){ left= true;}
 	if( ke.getKeyCode()== ke.VK_UP){ run= true;}
 }
 
 public void keyReleased( KeyEvent ke)
 {
 	if( ke.getKeyCode()== ke.VK_RIGHT) right= false;
 	if( ke.getKeyCode()== ke.VK_LEFT) left= false;
 	if( ke.getKeyCode()== ke.VK_UP) run= false;
 }

 public void keyTyped( KeyEvent ke){}
}
```

felet jag får är

```
KeyHandler.java:14: cannot resolve symbol
symbol  : method addKeyListener (KeyHandler)
location: class KeyHandler
        addKeyListener( this);
        ^
1 error
> Execution finished.
```

varför får jag det felet?
det skall vara en klass som jag ärver i en annan men borde väl inte spela nån roll?

Permalänk: https://www.webforum.nu/p/98506

## #2 — SPiN, 2004-03-01T11:25Z

Du har inte angett vilket objekt som ska få KeyListener.

```
ettObjekt.addKeyListener( this );
```

Permalänk: https://www.webforum.nu/p/1287875

## #3 — mangan, 2004-03-01T16:59Z

sen måste väl objektet vara en Component också?  Som det är skrivet nu så är objekt av din klass inte Components

Permalänk: https://www.webforum.nu/p/1288016

## #4 — SPiN, 2004-03-01T17:03Z

Visst måste objektet vara en Component, men så länge hans klass Move ärver från Component på något vis ( Om det nu är Move han vill använda ) så ska det fungera. Hans klass KeyHandler behöver **inte** vara av typen Component, endast objektet han sätter KeyListener på.

Permalänk: https://www.webforum.nu/p/1288019

## #5 — Smultron, 2004-03-01T22:47Z

så ni menar att jag ska sätta keyListenern frpn Move eller så för, för klassen KeyHandler...

Permalänk: https://www.webforum.nu/p/1288181

## #6 — SPiN, 2004-03-01T22:57Z

Ja, alltså KeyListener'n måste fästas på något, t.ex. ett textfält eller Panel. Någon typ av Component.

Permalänk: https://www.webforum.nu/p/1288185

## #7 — Smultron, 2004-03-02T13:29Z

jaha ok, men det finns inget direkt som den kan fästas på dock...?

Permalänk: https://www.webforum.nu/p/1288464

## #8 — SPiN, 2004-03-02T13:30Z

Jo, en klass som är eller ärver från en Component. Eller hur menar du?

Permalänk: https://www.webforum.nu/p/1288467

## #9 — Lime, 2004-03-02T15:33Z

addKeyListener(KeyListerner kl) tar en KeyListener som argument.

Om du t.ex. har en JFrame jfrmMinRuta som du vill kunna lyssna på tangentbordsinmatningar ifrån så gör du jfrmMinRuta.addKeyListener(new KeyHandler());

Om du ska koppla flera komponenter till samma KeyListener så är det smart att göra en instans av det.

Normalt är Lyssnare specialicerade för just en viss komponent så om man har en komponent "MinKomponent" så brukar man låta den implementera interfacet KeyListener och så i konstruktorn till denna komponent så gör man så som du vill göra (addKeyListener(this))

EDIT: Jo, alltså... Det är lite för enkelt att låta lyssnaren lyssna på sig själv. Tänk såhär "Jag har en lyssnare, vem ska den lyssna på" och så i den klassen så säger du "hörrö klassen, här har du ett jättefint objekt som du kan prata med".

/Lime

Permalänk: https://www.webforum.nu/p/1288543

## #10 — Blomman, 2004-03-12T19:23Z

Så här har jag gjort en gång: addKeyListener(this.mitt_objekt) och mitt objekt var inte en Component, det är en egen definerad klass.
Men det kanske ser ut just så här pga att det inte en en Component?

Permalänk: https://www.webforum.nu/p/1296661

## #11 — Lime, 2004-03-15T08:14Z

Nej, det är klart att this.mitt_objekt inte behöver vara en Component, den skall vara en instans av en klass om implementerar KeyListener-interfacet.

/Lime

Permalänk: https://www.webforum.nu/p/1301134

---

Tråden på webben: https://www.webforum.nu/amne/java/98506-problem-med-keylistener
