单击JTextField是否调用actionPerformed方法

时间:2014-05-28 05:54:21

标签: java swing jframe jtextfield

我有多个JTextField,我想知道在程序中选择了哪一个。目前似乎没有点击JTextField来调用ActionEvent(你是怎么称它的?)。

public void actionPerformed(ActionEvent ae){
    if(e.getSource().equals(JTextField.class)){
        current = (JTextField) e.getSource();
        System.out.println(current);
    }
}

3 个答案:

答案 0 :(得分:2)

当用户“操作”字段时,通常会触发ActionListener,对于大多数平台/外观而言,这是由用户按 Enter 键触发的。

我认为你所追求的是FocusListener

有关详细信息,请查看How to Write a Focus Listener

如果您只想了解当前关注的组件,可以使用KeyboardFocusManager

Component focusedComponent = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();

答案 1 :(得分:0)

使用也可以使用addMouseListener

jtextField.addMouseListener(new MouseAdapter(){
    public void mouseClicked(MouseEvent e){
        ...
    }
    public void mousePressed(MouseEvent e) {

    }

    public void mouseReleased(MouseEvent e) {

    }

    public void mouseEntered(MouseEvent e) {

    }

    public void mouseExited(MouseEvent e) {

    }

    });

答案 2 :(得分:-1)

您是否将actionListener添加到JTextField?

JTextField tf= new JTextfield();
tf.addActionListener(//class name goes there, if the actionListener is in a different class otherwise just say "this");