【问题标题】:How am I using KeyListener wrong in this code snippet?我如何在此代码段中错误地使用 KeyListener?
【发布时间】:2019-03-30 19:27:22
【问题描述】:

我正在尝试按 Enter 键转到下一个文本字段 (TextField2),而不是(默认情况下)它按 JOptionPane 的 OK_CANCEL_OPTION 中的 ok。

   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); 

【问题讨论】:

    标签: jpanel jtextfield keylistener keyevent


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-09
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多