rt
我的程序不知道为什么获不了,高手指点下
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class test extends JFrame{
    public static void main(String [] args)
    {
     test t = new test();
     t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     t.setVisible(true);
    }

public test()
{
setSize(200,200);
setTitle("test");
Jp J = new Jp();
add(J);
this.addKeyListener(new KeyAdapter()
{
public void KeyPressed(KeyEvent e)
{
 
System.out.print("KeyBoard");
}
});


}
 

}
class Jp extends JPanel{

public Jp()
{
    JButton  Jn = new JButton("按钮");
add(Jn);

Jn.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e)
{
System.out.print("button");
}
});

}
}按钮是可以,键盘就不行了,错哪了?

解决方案 »

  1.   

    Action deleteAction = new DeleteListener();
    InputMap imap = J.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
    imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0), "delete element");
    ActionMap amap = J.getActionMap();
    amap.put("delete element", deleteAction);
    用ActionMap映射可以 具体原因不名
      

  2.   

    你试试放在JP里面呢,要不再试试接受键盘事件的那个面板设个焦点JP试过,一样不行呀,设焦点不会.我再看看.谢谢kulin342:)
      

  3.   

    KeyListener
    中的方法是 
    keyPress(int keycode) 
    不是 KeyPress(int keycode) 
      

  4.   

    KeyListener
    中的方法是 
    keyPress(int keycode) 
    不是 KeyPress(int keycode) oh,,,我傻了,,
      

  5.   

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;public class test extends JFrame { public static void main(String[] args) {
    test t = new test();
    t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    t.setVisible(true);
    } public test() {
    setSize(200, 200);
    setTitle("test");
    Jp J = new Jp();
    add(J); }}class Jp extends JPanel { public Jp() {
    JButton Jn = new JButton("按钮");
    add(Jn);
    Jn.addKeyListener(new KeyAdapter() {
    public void keyPressed(KeyEvent e) { System.out.print("KeyBoard");
    }
    }); Jn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
    System.out.print("button");
    }
    }); }
    }
    我改成这样就可以.把keyListenner放在按钮上就行,为什么一定要放按钮呢>?
    奇怪,还是没有搞清楚
      

  6.   

    哎!!!多记一些eclipse的快捷键(如alt+/或ctrl+space是代码提示,ctrl+shift+t查找制定类),不知道要实现那些方法,就用用eclipse右键的source种的功能,这问题就不会出现了.