有很多方法可以做你想要的,所以这里只是其中之一:
您需要为每个文本字段添加一个动作侦听器,并让它们设置一个公共变量(对文本字段的引用),以便您的代码知道最后选择哪个文本字段。然后,当您单击按钮时,您可以简单地使用该变量来了解选择了哪个文本字段并在末尾添加 1,或者执行您想做的任何其他操作,只需编辑事件即可。
示例代码:
//Value to keep track of the last selected text field
public static JTextField lastClicked;
private static javax.swing.JButton jButton1;
private static javax.swing.JTextField jTextField1;
private static javax.swing.JTextField jTextField2;
public static void main(String args[])
{
//Create and display the form
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
//Setup all the components
jButton1 = new javax.swing.JButton("Click Me");
jTextField1 = new javax.swing.JTextField("One");
jTextField2 = new javax.swing.JTextField("Two");
//Add listeners
jButton1.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
//Add a 1 to the last selected text field
lastClicked.setText(lastClicked.getText() + "1");
}
});
jTextField1.addFocusListener(new java.awt.event.FocusAdapter()
{
public void focusGained(java.awt.event.FocusEvent evt)
{
//change the selected text field to this one
lastClicked = (JTextField) evt.getSource();
}
});
jTextField2.addFocusListener(new java.awt.event.FocusAdapter()
{
public void focusGained(java.awt.event.FocusEvent evt)
{
//change the selected text field to this one
lastClicked = (JTextField) evt.getSource();
}
});
}
});
}
请注意,在此示例中,我们将事件源强制转换为文本字段lastClicked = (JTextField) evt.getSource(),因此这仅适用于文本字段。如果要使用其他组件,则应使用整数或对象作为变量类型。
回首忆惘然
相关分类