我有多个JTextField
,我想知道在程序中选择了哪一个。目前似乎没有点击JTextField
来调用ActionEvent
(你是怎么称它的?)。
public void actionPerformed(ActionEvent ae){
if(e.getSource().equals(JTextField.class)){
current = (JTextField) e.getSource();
System.out.println(current);
}
}
答案 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");