在一个JPanel上有多个JTextField(jtf_a,jtf_b,jtf_c...),JTextField要实现回车事件,要实现的功能是jtf_a中按回车,判断不为空时,jtf_b得到焦点,依次伦推。下面方法我无法得到,回车健事件是在哪个JTextField发生的
jtf.addKeyListener(new MyKey());
class MyKey extends KeyAdapter{
  public void keyPressed(KeyEvent e){
  }
}想请教下,如何能得到键盘事件是在哪个JTextField发生的

解决方案 »

  1.   

    jtf.addKeyListener(new MyKey());
    class MyKey extends KeyAdapter{
      public void keyPressed(KeyEvent e){
        JTextField source = (JTextField)e.getSource();
      }
    }
      

  2.   

    再写一个
    ArrayList<JTextField> txfArray = new ArrayList<JTextField>();
    JPanel panel = new JPanel();addTextField(JTextField txf)
    {
      txfArray.add(txf);
      panel.add(txf);
      txf.addKeyListener(new
          KeyListener()
          {
            public void keyPressed(KeyEvent event)
            {
               if(event.getKeyCode() != KeyEvent.VK_ENTER)return;
               JTextField tf = (JTextField)event.getSource();
               for(int i = 0; i < txfArray.size(); ++i)
               {
                 if(e.equals(txfArray.get(i)))
                 {
                   txfArray.get(i+1).requestFocuse();
                   return;
                  }
                }
              }
            });
    }