目标:实现JTextField上下键、回车键的跳转功能;
第一步:利用循环,创建一个JTextFiled数组,并添加到主窗体;
第二部:添加JTextFiled跳转功能;
主窗体代买块,如下:
package my_packge;
import java.awt.Container;
import javax.swing.Jframe;
import javax.swing.JTextField;
public class test {
private Jframe frame;
private Container container;
private JTextField text[] = new JTextField[4];
private test() {
frame = new Jframe("测试");
container = frame.getContentPane();
container.setLayout(null);
String text_name[]=new String[] {"1","2","3","4"};
for(int i = 0 ; i < text.length ; i++) {
text[i] = new Create_JTextField().New_JTextField(80,i * 40,100,30);
text[i].setText(text_name[i]);
container.add(text[i]);
}
new Create_JTextField().JText_Field(text);//添加功能
frame.setSize(300, 250);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new test();
}
}
JTextField功能代码块,如下:
package my_packge;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JTextField;
public class Create_JTextField {
private JTextField text_box;
public JTextField New_JTextField (int x, int y, int width, int height) {
text_box = new JTextField();
text_box.setBounds(x, y, width, height);
return text_box;
}
public void JText_Field(JTextField jtextField[]) {
for (int i = 0; i < jtextField.length; i++) {
int Index = i;
jtextField[Index].addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case 38:// 上箭头键
if (Index - 1 < 0) {
jump(jtextField[jtextField.length - 1]);
} else {
jump(jtextField[Index - 1]);
}
break;
case 10:// 回车键
if (Index + 1 >= jtextField.length) {
jump(jtextField[0]);
} else {
jump(jtextField[Index + 1]);
}
break;
case 40:// 下箭头键
if (Index + 1 >= jtextField.length) {
jump(jtextField[0]);
} else {
jump(jtextField[Index + 1]);
}
break;
}
}
});
}
}
private void jump(JTextField jtextField ) {
jtextField.requestFocusInWindow();
}
}
运行结果,如下:
路漫漫其修远兮,吾将上下而求索。——屈原



