jpanel - 我如何在此代码段中错误地使用 KeyListener?
问题描述
我试图让按回车键转到下一个文本字段(TextField2),而不是(默认情况下)它按 JOptionPane 的 OK_CANCEL_OPTION 中的确定。
JTextField textField1 = new JTextField("");
JTextField textField2 = new JTextField("");
JPanel panel = new JPanel(new GridLayout(0,1));
panel.add(new JLabel ("Check"));
panel.add(textField1);
panel.add(new JLabel ("Cash" ));
panel.add(textField2);
textField1.addAncestorListener(new SetFocus());
textField1.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ENTER){
textField2.addAncestorListener(new SetFocus());
}
}
});
JOptionPane.showConfirmDialog(null, panel, "Deposit", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
解决方案
使用 textfield2.requestFocus() 而不是添加祖先侦听器。
推荐阅读
- node.js - PassportJS openid-client 如何在没有会话的情况下使用,将令牌/用户保存在普通 cookie 中
- java - JavaFX - 沿着平行于切线的路径制作动画
- python - python 一组所有数字类型。do pop(),不随机输出
- docker - 是否可以“重置” Docker 容器的读/写层?
- python - 如何在python中将None分配给对象引用
- python - python - 区分图例中的 x 和 y 误差
- node.js - MongoDB insertMany BulkWriteError,避免捕获重复键并执行 then 功能
- python - 抛出异常:读取访问冲突。**bp** 为 0xFFFFFFFFFFFFFFFF
- jpa - JPA 实体管理器是线程本地的吗?
- javascript - 只有元组时如何将数据从 JSON 加载到 D3 图表