Avatar billede elv Nybegynder
30. marts 2001 - 09:21 Der er 1 kommentar og
1 løsning

Fange tastetryk til panel

Hvad gør jeg galt! Jeg vil fange tastetrykkene til mit E_MyPanel, der er en udvidelse af Panel. MEN! Jeg kan hverken få dem fanget af Appleten eller Panelet. Er der nogen der kan se, hvad der er forkert? Jeg kan sagtens compile, men den skriver ikke noget, når man taster. Kan gridlayout ikke fange taster?

Her er koden:
Filen E_MyPanelTest.java:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class E_MyPanelTest extends Applet implements KeyListener
{
  public E_MyPanel drawPanel;
  public TextArea text;
  public void init()
  {
    drawPanel = new E_MyPanel();
    text = new TextArea(\"Press Any Key\");
    setLayout(new GridLayout(1,2));
    add(drawPanel);
    add(text);
    addKeyListener(this);
    drawPanel.requestFocus();
  }

  public void paint(Graphics g)
  {
    drawPanel.paint(g);
  }

  public void keyPressed(KeyEvent e)
  {
    System.out.println(\"Key pressed: \"+e.getKeyCode());
  }

  public void keyTyped(KeyEvent e)
  {
    System.out.println(\"Key typed: \"+e.getKeyCode());
  }

  public void keyReleased(KeyEvent e)
  {
    System.out.println(\"Key released: \"+e.getKeyCode());
  }
}


Og filen E_MyPanel.java:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class E_MyPanel extends Panel implements KeyListener
{
  public E_MyPanel()
  {
    addFocusListener(new FocusListener()
    {
      public void focusGained(FocusEvent e)
      {
        System.out.println(\"DrawPanel: Focus gained\");
      }

      public void focusLost(FocusEvent e)
      {
        System.out.println(\"DrawPanel: Focus lost\");
        requestFocus();
      }});

    addKeyListener(this);
  }

  public void paint(Graphics g)
  {
    g.drawString(\"Hello World!\",30,30);
  }

  public void keyPressed(KeyEvent e)
  {
    System.out.println(\"Key pressed: \"+e.getKeyCode());
  }

  public void keyTyped(KeyEvent e)
  {
    System.out.println(\"Key typed: \"+e.getKeyCode());
  }

  public void keyReleased(KeyEvent e)
  {
    System.out.println(\"Key released: \"+e.getKeyCode());
  }
}
Avatar billede mtilsted Nybegynder
30. marts 2001 - 14:35 #1
Det du adder din key listener til er jo selve applet, men dit textarea tager input inden det naar saa langt. Saa du skal have en

drawPanel.addKeyListener(this);
og/eller
text.addKeyListener(this);

Martin Tilsted
Avatar billede elv Nybegynder
01. april 2001 - 11:00 #2
Det var søreme rigtigt... Tak for det.
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