小弟我刚学java,运行书上的例子出了问题,想了很久,才纠正两处拼写错误,希望大虾帮我.
class MyKeyListener implements KeyListener
{
public void keyPressed(KeyEvent evt)
{
 System.out.println("\n按键被按下");
 showKeyEventMsg(evt);
}
public void keyReleased(KeyEvent evt)
{
}
public void keyTyped(KeyEvent evt)
{
}
private void showKeyEventMsg(KeyEvent evt)
{
int code = evt.getKeyCode();
char c  = evt.getKeyChar();
String szText= evt.getKeyText();
if (code != KeyEvent.VK_UNDEFINED)
System.out.println("\n按键对应的整型数:"+code);
if (c != KeyEvent.CHAR_UNDEFINED)
System.out.println("\n按键对应的字符:"+c);
if(evt.isShiftDown())
System.out.println("\n按键shift被按下");
System.out.println("\n按键本身的字符串:"+szText);
}
}
class ButtonPanel extends JPanel
{
public ButtonPanel()
{
tf= new JTextField(20);
add(tf);
myListener = new MyKeyListener();
tf.addKeyListener(myListener);
}
private JTextField tf;
private MyKeyListener myListener;
}
运行错误提示:cannot resolve symbol 同样的错误有10个!

解决方案 »

  1.   

    找到你的错误啦:
    在private void showKeyEventMsg(KeyEvent evt)方法中
    把String szText= evt.getKeyText();改为String szText = KeyEvent.getKeyText(code);
      

  2.   

    //System.out.println("\n按键被按下");
    println书上说可以自动换行,不需要换行符的,如果是print则可以。我也是刚学,不知道这对不对?????
      

  3.   

    andycpp:大虾,我该了,还是不行啊,错误依旧啊,请您运行一下,好不?
    你是不是很崇拜刘德华啊.我也是啊!
      

  4.   

    你是咋运行的啊?
    有没有把JPanel添加到JFrame中?
    JFrame默认不可见,有没有setVisible(true) ??????
      

  5.   

    你有没有import相应的package ?
      

  6.   

    对不起,请您把完整的代码给我贴上来,确实是没有写import,
      

  7.   

    朋友 我也是刚学java
    我就找到一点点错误
    你缺少
    import javax.swing.*;
    import java.awt.event.*;
    两条
    还有就是少一个main方法
    java.lang.NoSuchMethodError: main
    Exception in thread "main" 
    但是我不知道怎么添加
    你要是知道的话就告诉我
      

  8.   

    大虾,我研究了很久,终于能运行了,可是运行结果似乎与代码写的不是很一致啊!请指导!
    import javax.swing.*;
    import java.awt.event.*;
    class MyKeyListener implements KeyListener
    {
    public void keyPressed(KeyEvent evt)
    {
     System.out.println("\n按键被按下");
     showKeyEventMsg(evt);
    }
    public void keyReleased(KeyEvent evt)
    {
    }
    public void keyTyped(KeyEvent evt)
    {
    }
    private void showKeyEventMsg(KeyEvent evt)
    {
    int code = evt.getKeyCode();
    char c  = evt.getKeyChar();
    String szText= evt.getKeyText(code);
    if (code != KeyEvent.VK_UNDEFINED)
    System.out.println("\n按键对应的整型数:"+code);
    if (c != KeyEvent.CHAR_UNDEFINED)
    System.out.println("\n按键对应的字符:"+c);
    if(evt.isShiftDown())
    System.out.println("\n按键shift被按下");
    System.out.println("\n按键本身的字符串:"+szText);
    }
    }
    class ButtonPanel extends JPanel
    {
    public ButtonPanel()
    {
    tf= new JTextField(20);
    add(tf);
    myListener = new MyKeyListener();
    tf.addKeyListener(myListener);
    }
    private JTextField tf;
    private MyKeyListener myListener;
    }
    public class Event12_6
    {
    public static void main(String[] args)
    {
    JFrame frame = new MyFrame();
    frame.setVisible(true);
    }
    }
      

  9.   

    哦,我想出点了,没有把JPanel添加到JFrame中,可是我不知道要怎么样添加,请指导!
      

  10.   

    在main函数中加上
    frame.add(new ButtonPanel());
      

  11.   

    lz同学要是准备用java swing,awt作界面,那继续努力,如果是web开发这类,建议把书扔了。