请大家帮忙看看,这段代码要怎么修改才行呢?
import java.awt.*;
import java.awt.event.*;
public class S extends Frame{
private KeyEventHandler keyListener= new KeyEventHandler();
private WindowCloser windowListener= new WindowCloser();
public S(){
addKeyListener(keyListener);
addWindowListener(windowListener);
setSize(200,200);
setVisible(true);
}
public static void main(String args[])
{S p= new S();}
}
public class KeyEventHandler implements KeyListener{
    /**
     * 
     * @param ke 
     */
public void keyPressed(KeyEvent ke){
if (ke.getKeyChar()=='q')
System.exit(0);}
public void keyReleased(KeyEvent ke)
{}
public void keyTyped(KeyEvent ke)
{System.out.println("Key Listener:Key pressed:"+ ke.getKeyChar());}
}
public class WindowCloser implements windowListener{
public void windowClosing(WindowEvent we)
{System.exit(0);}
public void windowOpened(WindowEvent we){}
public void windowIconified(WindowEvent we){}
public void windowDeiconified(WindowEvent we){}
public void windowClosed (WindowEvent we){}
public void windowActivated (WindowEvent we){}
public void windowDeactivated(WindowEvent we){}
}

解决方案 »

  1.   


    import java.awt.*;
    import java.awt.event.*;class S extends Frame {    private KeyEventHandler keyListener = new KeyEventHandler();
        private WindowCloser windowListener = new WindowCloser();    public S() {
            addKeyListener(keyListener);
            addWindowListener(windowListener);
            setSize(200, 200);
            setVisible(true);
        }    public static void main(String args[]) {
            S p = new S();
        }
    }class KeyEventHandler implements KeyListener {    /**
         *
         * @param ke
         */
        public void keyPressed(KeyEvent ke) {
            if (ke.getKeyChar() == 'q') {
                System.exit(0);
            }
        }    public void keyReleased(KeyEvent ke) {
        }    public void keyTyped(KeyEvent ke) {
            System.out.println("Key Listener:Key pressed:" + ke.getKeyChar());
        }
    }class WindowCloser implements WindowListener {    public void windowClosing(WindowEvent we) {
            System.exit(0);
        }    public void windowOpened(WindowEvent we) {
        }    public void windowIconified(WindowEvent we) {
        }    public void windowDeiconified(WindowEvent we) {
        }    public void windowClosed(WindowEvent we) {
        }    public void windowActivated(WindowEvent we) {
        }    public void windowDeactivated(WindowEvent we) {
        }
    }
      

  2.   

    没写过AWT看不懂.
    帮你顶下..
      

  3.   

    谢谢一楼啦,还想问下一楼给代码加的 
        /**
         *
         * @param ke
         */
    是什么意思呢?小弟刚学java不久,还希望能帮忙解释下?谢谢
      

  4.   


    import java.awt.*;
    import java.awt.event.*;class S extends Frame {    public S() {
            addKeyListener(new KeyAdapter() {            @Override
                public void keyPressed(KeyEvent ke) {
                    if (ke.getKeyChar() == 'q') {
                        System.exit(0);
                    }
                }            @Override
                public void keyTyped(KeyEvent ke) {
                    System.out.println("Key Listener:Key pressed:" + ke.getKeyChar());
                }
            });
            addWindowListener(new WindowAdapter() {            @Override
                public void windowClosing(WindowEvent e) {
                    S.this.dispose();
                    System.exit(0);
                }
            });
            setSize(200, 200);
            setVisible(true);
        }    public static void main(String args[]) {
            S p = new S();
        }
    }
      

  5.   

    javadoc的一些标记,暂时不用管。