Program will not read keyboard input. 
	 
	
		| Author | 
		Message | 
	 
		 
		Ethan3210
 
 
 
    
		 | 
		
		
			
				  Posted: Mon Nov 22, 2010 2:21 pm    Post subject: Program will not read keyboard input.  | 
	
				
				 | 
			 
			 
				
  | 
			 
			
				My program won't let the user input any key commands, and I have no clue why. Everything should be working fine, but it doesn't.
 
 
	  | Java: | 	 		  import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.awt.event.*;
import java.awt.*;
 
public class Worms  extends JFrame{
        
        public Worms (){
                super ("Ohai Denny");
 
                setSize (645, 505);
 
                setDefaultCloseOperation (EXIT_ON_CLOSE );
                 Menu menu =  new Menu();
 
        setVisible (true);
 
        setFocusable (true);
 
        setResizable (false);
 
        add (menu );
         }
    
    public static void main (String[] args ) {
        Worms frame =  new Worms ();
        
     }
}  | 	  
 
 
	  | Java: | 	 		  import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.awt.event.*;
import java.awt.*;
import java.util.Scanner;
import java.io.*;
public class Menu extends JPanel implements KeyListener{
        Image backdrop, cloud1, cloud2, cloud3, cloud4, cloud5, title, worms, pressstart, spin, logo,startback;
         Toolkit kit =  Toolkit. getDefaultToolkit();
         int x1=  0- 250, x1speed =  1, x2 =  0- 250, x2speed =  2, x3 =  0- 250, x3speed =  3, x4 =  0- 250, x4speed =  2, x5 =  0- 250, x5speed =  1;
         int y1=  50, y2=  200, y3=  120, y4=  250, y5=  300;
         boolean start =  true;
         int key;
         Random num =  new Random();
        
     public Menu() {
        super ();
 
        addKeyListener (this);
 
                setFocusable (true);
                
 
                backdrop = kit. getImage("Images/backdrop.GIF");
 
                cloud1 = kit. getImage("Images/cloud1.GIF");
 
                cloud2 = kit. getImage("Images/cloud2.GIF");
 
                cloud3 = kit. getImage("Images/cloud1.GIF");
 
                cloud4 = kit. getImage("Images/cloud2.GIF");
 
                cloud5 = kit. getImage("Images/cloud1.GIF");
 
                worms = kit. getImage("Images/Intro/title.GIF");
 
                pressstart = kit. getImage("Images/pressstart.GIF");
 
                spin = kit. getImage("Images/Intro/WorldAnim/test.GIF");
 
                logo = kit. getImage("Images/Intro/logo.GIF");
 
                startback = kit. getImage("Images/startback.GIF");
     }
    
    public void paint (Graphics comp ){
        super. paint(comp );
 
        comp. drawImage(backdrop, 0, 0, this);
 
        comp. drawImage(cloud1,x1,y1, this);
 
        comp. drawImage(cloud2,x2,y2, this);
 
        comp. drawImage(cloud3,x3,y3, this);
 
        comp. drawImage(cloud4,x4,y4, this);
 
        comp. drawImage(cloud5,x5,y5, this);
 
        comp. drawImage(worms, 161, 100, this);
 
        comp. drawImage(logo, 171, 20, this);
 
        comp. drawImage(spin, 251, 25, this);
        
         if (start ){
            comp. drawImage(startback, 161, 400, this);
 
            comp. drawRect(161, 400, 324, 44);
 
            comp. drawImage(pressstart, 163, 403, this);
         }
        try { Thread. sleep(10);
         } catch (Exception e ){}
        x1= x1 + x1speed;
 
        x2= x2 + x2speed;
 
        x3= x3 + x3speed;
 
        x4= x4 + x4speed;
 
        x5= x5 + x5speed;
 
        repaint ();
         if (x1 >=  645){ 
        x1 =  (0- 250);
 
        x1speed = num. nextInt(3)+ 1;
 
        y1 = num. nextInt(325);
         }
        if (x2 >=  645){ 
        x2 =  (0- 250);
 
        x2speed = num. nextInt(3)+ 1;
 
        y2 = num. nextInt(325);
         }
        if (x3 >=  645){ 
        x3 =  (0- 250);
 
        x3speed = num. nextInt(3)+ 1;
 
        y3 = num. nextInt(325);
         }
        if (x4 >=  645){ 
        x4 =  (0- 250);
 
        x4speed = num. nextInt(3)+ 1;
 
        y4 = num. nextInt(325);
         }
        if (x5 >=  645){ 
        x5 =  (0- 250);
 
        x5speed = num. nextInt(3)+ 1;
 
        y5 = num. nextInt(325);
         }
        repaint ();
     }
    public void keyReleased (KeyEvent evt ){}
    public void keyPressed (KeyEvent evt ){}
    public void keyTyped (KeyEvent evt ){
        char ch = evt. getKeyChar();
         if (ch ==  'a')
            System. exit(0);
                System. out. println("Some key was pressed !!");
     }
}  | 	 
  | 
			 
			
				 | 
			 
		  | 
	 
	 
		 | 
		
		 | 
	 
	  
		  | 
	 
		 
		Sponsor Sponsor 
		 
  
		 | 
		
 | 
	 
	 
		  | 
	 
				 
		TerranceN
 
 
 
    
		 | 
		
		
			
				  Posted: Mon Nov 22, 2010 5:27 pm    Post subject: RE:Program will not read keyboard input.  | 
	
				
				 | 
			 
			 
				
  | 
			 
			
				You need to add menu as a KeyListener as well.
 
After the line
 
add(menu);
 
 
add this line 
 
addKeyListener(menu); | 
			 
			
				 | 
			 
		  | 
	 
	 
		 | 
		
		 | 
	 
	  
		  | 
	 
				 
		 | 
	 
 
	
	
	 
	
	 |