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());
}
}
