Avatar billede fredand Forsker
04. juli 2004 - 15:43 Der er 3 kommentarer og
1 løsning

Problem with KeyListener

Hello!
I have tried to get a JPanel implement the KeyListener interface but I can't get it to work. It does not indicate any keystrokes at all.
Below is the full code and my opinion is that I would get different output when I press, type or release a key. But nothing happens.

Any suggestions are welcome.

Best regards
Fredrik

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Main extends JFrame
{
    MyPanel myPanel = new MyPanel();

    public Main()
    {
        super("KeyListener Tester");
        setSize(300, 300);
        getContentPane().add(myPanel);
        show();
    }

    public static void main(String[] args)
    {
        new Main();
    }
}

class MyPanel extends JPanel implements KeyListener
{
    public MyPanel()
    {
        setBackground(Color.red);
        addKeyListener(this);
        requestFocus();
    }

    public void keyPressed(KeyEvent ke)
    {
        System.out.println("keyPressed");
    }

    public void keyReleased(KeyEvent ke)
    {
        System.out.println("keyReleased");
    }

    public void keyTyped(KeyEvent ke)
    {
        System.out.println("keyTyped");
    }
}
Avatar billede _carsten Nybegynder
04. juli 2004 - 15:53 #1
By default a JPanel aint focusable

Add this line to MyPanel constructor:    setFocusable(true);
Avatar billede arne_v Ekspert
04. juli 2004 - 15:54 #2
The keyXxxx methods does not get invoked here either.

But if I add the listener to a JTextField instead of a JPanel they do.
Avatar billede arne_v Ekspert
04. juli 2004 - 15:55 #3
Ah - carsten is rigth - that makes it work for JPanel too
Avatar billede fredand Forsker
04. juli 2004 - 17:17 #4
Thanks mates!

You guys are so good at this!

/Fredrik
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester