Jag har ett problem som jag inte kan hitta någon lösning på. Jag har 2 stycken klasser, MyFrame och MyPanel, som ärver från JFrame resp. JPanel. I klassen MyPanel som jag skapar ett objekt av i klassen MyFrame vill jag lägga till en tangenbordslyssnare som känner av shift-knappen. Detta gör jag med kodstycket nedan som läggs i konstruktorn. Får inga problem vid kompileringen men inget händer när jag trycker på shift-knappen under körning av programmet. Om jag däremot lägger satserna i MyFrame klassen så fungerar det utmärkt. Någon som vet vad det beror på och kanske kan ge mig en lösning?
Anledningen till att jag vill att tangentbordslyssnaren ska ligga i klassen MyPanel är att om jag nu skulle vilja uttnyttja den klassen i något annat program så vill jag ju självklart att tangentbordskommandona också ska fungera.
import java.awt.event.KeyEvent;
import java.awt.event.KeyAdapter;
addKeyListener(
new KeyAdapter()
{
public void keyPressed( KeyEvent e )
{
if( e.isShiftDown() )
{
System.out.println("shit active");
}
}
public void keyReleased( KeyEvent e )
{
if( !e.isShiftDown() )
{
System.out.println( "shit relesed" );
}
}
}
);