想实现如题的功能,试了 private class KeyListener extends KeyAdapter { @Override
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if(key == KeyEvent.VK_ENTER) {
transferFocus();
}
}
}可以由于中间有其他组件,所以transferFocus();方法不起作用
使用tab键可以进行跳转
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if(key == KeyEvent.VK_ENTER) {
transferFocus();
}
}
}可以由于中间有其他组件,所以transferFocus();方法不起作用
使用tab键可以进行跳转
xx.grabFocus();
protected boolean accept(Component aComponent){
return aComponent instanceof JTextComponent;
}
});(input);
既然有多个TextField,那么你只能用逻辑的方式来解决。
多个TextField,这时候你做一个判断,捕获到获取当前焦点的组件,然后让这个组件的下一个TextField来接收就行了。当然这样的话代码就有可能比较长了。
或者楼主可以试想一下为什么tab健可以实现所需要的功能?原因我想应该是在源代码里面。楼主试着重写一下吧。这就比较高级了。
Set<AWTKeyStroke> set = new HashSet<>(KeyboardFocusManager.getCurrentKeyboardFocusManager().getDefaultFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS));
set.add(KeyStroke.getKeyStroke("ENTER"));
KeyboardFocusManager.getCurrentKeyboardFocusManager().setDefaultFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, set);
如果不想切换到某个组件
somecomponent.setFocusable(false);