我在程序中写有10个JTextField控件,现在我想通过按下回车键,实现光标直接跳转到下一个控件的功能(就和按下Tab的功能一样),但是在java的KeyPress事件响应中不知道应该如何实现,我将我的一部分程序发上来,希望高人能够给我一个代码的说明.我希望有人能够拿走这80分
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JPanel;
import javax.swing.JTextField;public class keyevent extends JPanel implements KeyListener 
{
JTextField b[]=new JTextField[10];
keyevent()
{
for(int i=0;i<=9;i++)
{
b[i]=new JTextField(""+i);
b[i].addKeyListener(this);
add(b[i]);
}
}

public void keyPressed(KeyEvent e){}
public void keyTyped(KeyEvent e){}
public void keyReleased(KeyEvent e){}
}

解决方案 »

  1.   

    这东西不熟悉,应该是JTextField[i].setFocus()一类的吧...
      

  2.   

    老兄啊,首先这里肯定不是用JTextField[i].   如果用b[i].也只有一个setFocusable(true);不过我试过了,不行,没有效果,写不写看起来一样啊
      

  3.   

    public void keyPressed(KeyEvent evt) {
        int key = evt.getKeyCode();
        if (key == KeyEvent.VK_ENTER)
         transferFocus();}
      

  4.   

    我给你个例子,感觉你的程序结构不好,你最好改改。import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    //定义自己的JTextField类
    class MyTextField extends JTextField {
    MyTextField(int len) {
    super(len);
                   //添加事件监听,使用匿名类
    addKeyListener( new KeyAdapter() {
                   //当回车时候实现tab功能
    public void keyPressed(KeyEvent evt){
    int key = evt.getKeyCode();
    if (key == KeyEvent.VK_ENTER)
    transferFocus();  
     }
     });
       }
    }
     
    public class Test{
    public static void main(String args[]){

    JFrame jf = new JFrame("hello");
    MyTextField f1 = new MyTextField(10);
    MyTextField f2 = new MyTextField(10);
    jf.add(f1,"North");
    jf.add(f2,"South");
    jf.setSize(100,100);
    jf.setVisible(true);
    }
    }