Есть много способов сделать то, что вам нужно, поэтому вот только один из них:
Вам необходимо добавить прослушиватель действий в каждое текстовое поле и задать им открытую переменную (Ссылка натекстовое поле), чтобы ваш код знал, какое текстовое поле было выбрано последним.Затем, когда вы нажимаете кнопку, вы можете просто использовать эту переменную, чтобы узнать, какое текстовое поле было выбрано, и добавить 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()
, поэтому это будет работать только с текстовыми полями.Если вы хотите использовать другие компоненты, вы должны использовать целое число или объект в качестве типа переменной.