首页 > 解决方案 > 我如何在此代码段中错误地使用 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); 

标签: jpaneljtextfieldkeylistenerkeyevent

解决方案


使用 textfield2.requestFocus() 而不是添加祖先侦听器。


推荐阅读