我下面写的代码,按字母总是没反应,好像我写的很混乱,谢谢大家帮我找找问题吧!
/**
 * @(#)KeyboardEvent.java
 *
 *
 * @author 
 * @version 1.00 2009/12/14
 */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class KeyboardEvent extends JApplet implements KeyListener{

private String indicator="please input a char:";
private char charInput='a';
private int x=0;
private int y=0;    public KeyboardEvent() {
    }
    
    public void init(){
     //getGraphics().drawString(indicator,10,10);
     addKeyListener(this);
     focus();
    }
    
    public void start(){
    }
    
    public void focus(){
     this.requestFocus();
    }
    
    public void keyPressed(KeyEvent e){
    }
    
    public void keyReleased(KeyEvent e){
    }
    
    public void keyTyped(KeyEvent e){
     charInput=e.getKeyChar();
     repaint();
    }
    
    public void paint(Graphics g){
     g.drawString("TRY THIS",150,150);
     g.drawString(String.valueOf(charInput),x,y);
    }
    
    public static void main(String[] args){
     KeyboardEvent kbEvent=new KeyboardEvent();
     JFrame frame=new JFrame();
     frame.getContentPane().add(kbEvent,BorderLayout.CENTER);
     kbEvent.init();
     kbEvent.start();
     kbEvent.focus();
     frame.setSize(400,400);
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setVisible(true);
    }
    
    
}

解决方案 »

  1.   

    /** 
    * @(#)KeyboardEvent.java 


    * @author 
    * @version 1.00 2009/12/14 
    */ 
    import java.awt.*; 
    import java.awt.event.*; 
    import java.util.Random;import javax.swing.*; public class KeyboardEvent extends JApplet implements KeyListener{ private String indicator="please input a char:"; 
    private char charInput='a'; 
    private int x=10; 
    private int y=10;     public KeyboardEvent() { 
        } 
        
        public void init(){ 
        //getGraphics().drawString(indicator,10,10); 
        addKeyListener(this); 
        focus(); 
        } 
        
        public void start(){ 
        } 
        
        public void focus(){ 
        this.requestFocus(); 
        } 
        
        public void keyPressed(KeyEvent e){ 
        } 
        
        public void keyReleased(KeyEvent e){ 
        } 
        
        public void keyTyped(KeyEvent e){ 
         System.out.println(e.getKeyChar());
        charInput=e.getKeyChar(); 
        repaint(); 
        }
        
        public void paint(Graphics g){ 
        g.drawString("TRY THIS",150,150); 
        g.drawString(String.valueOf(charInput),new Random().nextInt(150),new Random().nextInt(150)); 
        } 
        
        public static void main(String[] args){ 
        KeyboardEvent kbEvent=new KeyboardEvent(); 
        JFrame frame=new JFrame(); 
        frame.getContentPane().add(kbEvent,BorderLayout.CENTER); 
        kbEvent.init(); 
        kbEvent.start(); 
        kbEvent.focus(); 
        frame.setSize(400,400); 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        frame.setVisible(true); 
        } 
        
        
    }感觉下吧  这种问题 应该自己可以debug出来
      

  2.   

    /** 
    * @(#)KeyboardEvent.java 


    * @author 
    * @version 1.00 2009/12/14 
    */ 
    import java.awt.*; 
    import java.awt.event.*; 
    import javax.swing.*; public class KeyboardEvent extends JApplet implements KeyListener{ private String indicator="please input a char:"; 
    private char charInput='a'; 
    private int x=100; 
    private int y=100;  
        
    public KeyboardEvent()
    {
        JFrame frame=new JFrame(); 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        frame.setSize(400,400);  
        this.addKeyListener(this);
        frame.setVisible(true);
    }
        
        public void keyPressed(KeyEvent e)
        { 
            charInput=e.getKeyChar(); 
            repaint(); 
        } 
        
        public void keyReleased(KeyEvent e)
        {} 
        
        public void keyTyped(KeyEvent e)
        {} 
        
        public void paint(Graphics g)
        { 
         g.setColor(this.getBackground());
         g.fillRect(0,0,this.getWidth(),this.getHeight());
         g.setColor(Color.RED);
         g.drawString(indicator,10,10);
         g.drawString("TRY THIS",150,150); 
         g.drawString(String.valueOf(charInput),x,y);
        } 
        
        public static void main(String[] args)
        { 
         new KeyboardEvent(); 
        }    
    }
    给你改了,你看是这样不。