
-----------------------------------
Ethan3210
Mon Nov 22, 2010 2:21 pm

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.

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

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 !!");
    }
}

-----------------------------------
TerranceN
Mon Nov 22, 2010 5:27 pm

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);
