小弟我刚学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个!
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个!
在private void showKeyEventMsg(KeyEvent evt)方法中
把String szText= evt.getKeyText();改为String szText = KeyEvent.getKeyText(code);
println书上说可以自动换行,不需要换行符的,如果是print则可以。我也是刚学,不知道这对不对?????
你是不是很崇拜刘德华啊.我也是啊!
有没有把JPanel添加到JFrame中?
JFrame默认不可见,有没有setVisible(true) ??????
我就找到一点点错误
你缺少
import javax.swing.*;
import java.awt.event.*;
两条
还有就是少一个main方法
java.lang.NoSuchMethodError: main
Exception in thread "main"
但是我不知道怎么添加
你要是知道的话就告诉我
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);
}
}
frame.add(new ButtonPanel());